見出し画像

ローカルTTSを試す【第2回】Supertonicを入れて日本語を喋らせる

こんばんは。ほったりたです。

前回は、ローカルで動く軽量TTS
Supertonic を「試してみた」話を書きました。

今回はその続きで、実際に自分のパソコンに入れて、
日本語の音声が出るまでの手順
をまとめます。

結論から言うと、pip install 一発で入って、
10行くらいのコードで日本語が喋ります


※今回の手順は、僕が試した
Mac(Apple Silicon)+ Python 3.9 の環境がベースです。

まずはインストール


作業用のフォルダを作って、その中で進めます。

まず、Python の仮想環境(venv)を用意します。

python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip

次に、本体を入れます。入れるのはこれだけです。

pip install supertonic

依存パッケージ(ONNX Runtime など)も、これで一緒に入ります。

初回だけ、モデルが自動でダウンロードされる


Supertonic は、最初に動かしたときだけ、読み上げに使うモデル一式を自動でダウンロードします。

◆ ダウンロードはコードの中で自動
(あとで出てくる auto_download=True)
◆ 保存先は ~/.cache/supertonic3/
◆ 容量は 約385MB
◆ 手元では数分で終わりました(回線によって変わります)

ディスクは、モデルだけで約385MB。仮想環境なども含めて、1GBくらいの空きを見ておくと安心です。

10行くらいで、日本語の音声が出る


最小のコードはこれだけです。

from supertonic import TTS

tts = TTS(auto_download=True)
style = tts.get_voice_style(voice_name="M1")

wav, duration = tts.synthesize(
    "こんにちは、ほったりたです。テスト音声です。",
    voice_style=style,
    lang="ja",
)

tts.save_audio(wav, "output/test.wav")

これを実行すると、output/test.wav に音声ファイルができます。

auto_download=True にしているので、初回だけモデルが自動で落ちてきます。

実際にできたのがこちら

男性版

女性版

声は M2とF4を選んでいますが、
プリセットで M1〜M5、F1〜F5 が使えます。


手元でもう一度動かしたときは、こんな結果でした。

done duration=[3.2505896] output=.../output/test.wav
real 2.61

約3.25秒の音声が、2.61秒で生成できました。軽さは本物です。

ただし、記事の読み上げには前処理が必要


ここは前回の記事でも書いたところです。

「入れて動かす」だけなら簡単ですが、
長い記事をそのまま読ませると崩れます

実用にするには、ひと手間が要りました。

前回も書きましたが、改めて共有すると

◆ 台本を句点で区切って、一文ずつ渡す
◆ 読み間違える語(Google、一朝一夕 など)は、先にカタカナ・ひらがなへ変換しておく
◆ 見出し・URL・記号は、読み上げ用に整形してから渡す

このあたりの「なぜそうなるか」は、前回の記事に書いています。

導入だけならここまでで音は出ますが、
記事の読み上げに使うなら、
この前処理までセット
だと思っておくといいです。

一旦ここまで無料でできてます


今回、試したのはここまでです。

◆ pip install supertonic
◆ モデルの自動ダウンロード
◆ ローカルCPUでの音声合成
◆ プリセット音声(M1〜M5 / F1〜F5)
◆ 日本語(lang="ja")の読み上げ

まずはプリセット音声で、入れて鳴らすところまで。こ
こまでは無料で試せます。

※ wav ではなく mp3 で書き出したい場合は、別途 ffmpeg が必要です
(brew install ffmpeg)。
導入の最小手順としては、wavまででじゅうぶんです。

※ ライセンスは、コード(SDK)が MIT、モデル本体が OpenRAIL-M です。気になる方は、下の公式リンクから確認してみてください。

ちなみに、これAIに丸ごと頼んでもいいかも


ここまで手順を書いておいてなんですが、正直に言うと——

やっていることは pip install して、サンプルコードを動かすだけです。

なので、この記事をそのままAIに読ませて
「この通りに入れて」とお願いすれば

環境構築から音が出るところまで、一気にやってくれるかもしれません。

ただ、この記事を読ませてできるかはまだ自分では試していません

もしうまくいかなかったら、ごめんなさい。

(試した方がいたら、どうだったか教えてもらえるとうれしいです)

参考リンク


◆ GitHub: https://github.com/supertone-inc/supertonic
◆ PyPI: https://pypi.org/project/supertonic/
◆ モデル本体(HuggingFace): https://huggingface.co/Supertone/supertonic-3

次回は、もうひとつ試している VoxCPM のほうを書く予定です。


最後まで読んでいただきありがとうございました!

普段は「はっきんぐパパ」として、子どもと作ったものづくりの記事も書いていますので、ぜひ覗いてみてください


いいなと思ったら応援しよう!

Hottarita(ほったりた) いつも読んで頂きありがとうございます! いただいたサポートは子どものためのもの作りの活動費に使わせていただきます!