Gradio로 TTS 웹 앱 만들기
텍스트를 입력하면 자연스러운 목소리로 들려주는 작은 페이지는 첫 AI 프로젝트의 단골이자, 쓸모 있는 사내 도구이고, 좋은 제품 데모입니다. Gradio는 Python 함수를 몇 줄 만에 그런 페이지로 만들고, 무료 SuperClonica 엔진이 일반 CPU에서 목소리를 맡습니다.
이 가이드에서는 최소한의 앱, 목소리와 설정 추가, 무료 호스팅 방법을 소개합니다. 저희 Hugging Face Spaces 데모도 바로 이렇게 만들었습니다.
만들 것
모든 것이 내 Python 프로세스 안에서 돌아가며, 텍스트가 음성 서비스로 전송되지 않습니다.
- 텍스트 입력란, 목소리 선택, 다운로드 버튼이 있는 플레이어.
- 기본 목소리 10종과 가지고 있는 카탈로그 목소리.
- 노트북, 서버, 무료 클라우드 CPU에서 돌아갑니다.
- 그래픽 카드도 유료 API도 필요 없습니다.
먼저 목소리 들어 보기
코드를 쓰기 전에 목소리 페이지에서 들어 보세요. 30~100자 대사를 입력하고 언어를 고른 뒤 생성 버튼을 누르면, 몇 초 만에 앱에 넣을 목소리가 정해집니다.
최소한의 앱
Gradio의 Audio 출력은 샘플링 레이트와 오디오 배열의 쌍을 받으므로 (rate, audio) 순서로 돌려주세요.
- 두 패키지 설치: python -m pip install superclonica-cpu gradio.
- 앱 작성: import gradio as gr; from superclonica import Superclonica; tts = Superclonica(); def speak(text, voice): audio, rate = tts.synthesize(text, voice=voice, lang="ko"); return (rate, audio). 그다음 gr.Interface(fn=speak, inputs=[gr.Textbox(label="Text"), gr.Dropdown(["F1", "F2", "M1", "M2"], label="Voice")], outputs=gr.Audio()).launch().
- Python으로 파일을 실행하고 Gradio가 보여 주는 로컬 주소를 여세요.
- 처음 실행할 때 Supertonic 3 모델(약 385MB)을 내려받고, 이후에는 몇 초 만에 시작합니다.
목소리, 속도, 여러 사용자
F1이나 F2 대신 목소리 파일 경로를 넘기면 카탈로그 목소리를 추가할 수 있고, 지원하는 31개 언어 코드로 언어 드롭다운도 만들 수 있습니다. 속도는 엔진에서 tts.speed = 1.1처럼 0.7~2.0 사이로 바꿉니다. 엔진은 파일 맨 위에서 한 번만 만들고, 여러 사람이 동시에 쓴다면 호출을 threading lock으로 감싸 요청이 차례로 처리되게 하세요.
무료로 호스팅하기
Hugging Face Spaces는 Gradio 앱을 무료 CPU에서 돌립니다. 파일을 app.py로 Space에 넣고 superclonica-cpu를 적은 requirements.txt를 함께 두면 Space가 빌드합니다. 저희 SuperClonica 데모도 공유 CPU 2코어에서 이렇게 돌아갑니다. 공개 앱에서는 텍스트 길이를 제한하고, 공유해도 되는 목소리만 제공하세요. 기본 목소리는 모델 라이선스에 따라 무료이지만, 구매한 카탈로그 목소리는 내 프로젝트용입니다.