初めに
軽量のTTSモデルの smallttsを動かしていきます。
英語以外は対応していないので、生成できる音声は英語のみになります
開発環境
- Windows 11
- Docker
環境構築
以下のDockerファイルを作成します
# CPU版Dockerfile - 軽量で高速起動 FROM python:3.10-slim # 作業ディレクトリを設定 WORKDIR /app # システムパッケージの更新と必要なパッケージをインストール RUN apt-get update && apt-get install -y --no-install-recommends \ espeak-ng \ libsndfile1-dev \ ffmpeg \ git \ curl \ build-essential \ && rm -rf /var/lib/apt/lists/* # uvをインストール RUN curl -LsSf https://astral.sh/uv/install.sh | sh ENV PATH="/root/.local/bin:$PATH" # プロジェクトファイルをコピー COPY pyproject.toml README.md ./ COPY src ./src COPY scripts ./scripts # 依存関係をインストール RUN uv sync --no-dev # outディレクトリを作成 RUN mkdir -p /app/out # assetsディレクトリを作成(後でボリュームマウントまたは自動ダウンロード) RUN mkdir -p /app/assets # デフォルトのコマンド CMD ["bash"]
推論の実行
まずはDocker環境をビルドします
docker build -t smalltts:latest -f Dockerfile .
次にコンテナをバックグラウンドで実行します
docker run -d --name smalltts smalltts:latest sleep infinity
アセットをダウンロードします
docker exec smalltts uv run python -m smalltts.assets.ensure tryme codec e2e length
推論を実行します
docker exec smalltts uv run python scripts/tryme.py "Hello from smallTTS!"
生成した音声ファイルを取り出します
docker cp smalltts:/app/out/tryme.wav ./tryme.wav