ブログBlog

Mozilla TTSを動かしてみよう。- 第三回 –

また、忙しくて、なかなかブログが書けませんでした…。
今回は、「Mozilla TTSを動かしてみよう。- 第三回 -」です。
(一旦、これで音声合成に関するブログはここまでにしようかなと。)

前回の第二回では、Mozilla TTSの概要/歴史/ライブラリ構成などについて記載させて頂きました。今回は、実際にローカルのPCにMozillaTTSを導入して動かす方法を掲載します。

 

1.動作環境

今回は、「Windows11」の環境で動かします。
Mozilla TTSは、「Python3.7.4」のバージョンで動くので、「Python3.7.4」を事前にダウンロードしておいて下さい。
(Python3.7.4より新しいバージョンでは動作しませんでした。)

ご参考)Python
https://www.python.org/downloads/windows/

 

2.インストール

各種導入やコマンドの実行は、システム管理者権限で実施して下さい。

2.1. Python3.7.4の導入

①ダウンロードした「python-3.7.4-amd64.exe」を実行し、WindowsPCにPython3.7.4を導入します。

②仮想環境の作成と有効化
コマンドラインより以下を実行します。

→ tts_envという仮想環境を作成

→ 仮想環境の有効化

 

2.2.ライブラリの導入

コマンドラインより以下を実行します。

①pip(Pythonのパッケージ管理ツール)の最新化

②Mozilla TTSのコアライブラリとその依存パッケージのインストール

【注意】以下のような警告が出ます。
DEPRECATION: torchsde 0.2.5 has a non-standard dependency specifier numpy>=1.19.*; python_version >= “3.7”. pip 24.1 will enforce this behaviour change. A possible replacement is to upgrade to a newer version of torchsde or contact the author to suggest that they release a version with a conforming dependency specifiers. Discussion can be found at https://github.com/pypa/pip/issues/12063

この文言は、pip(Pythonパッケージ管理ツール ) が特定のパッケージ (今回はtorchsde) の依存関係の指定方法に対し非標準の記述を検出した際に出力される文言です。将来の互換性に影響する可能性があることを示唆しています。
本来であれば、pipから警告された「torchsde」を最新バージョンにアップグレードすべきなのかもしれませんが、今回はテストなので何もしていません。

 

3.音声合成を動かしてみる。

まずは、導入されているモデルを確認してみましょう。
以下のコマンドを実行する事で導入されているモデル一覧(モデル名、言語、スピーカー)を確認する事ができます。

利用できるモデルとして以下が表示されると思います。

——————————————————
No API token found for 🐸Coqui Studio voices – https://coqui.ai
Visit 🔗https://app.coqui.ai/account to get one.
Set it as an environment variable export COQUI_STUDIO_TOKEN=<token>

Name format: type/language/dataset/model
1: tts_models/multilingual/multi-dataset/your_tts
2: tts_models/bg/cv/vits
3: tts_models/cs/cv/vits
4: tts_models/da/cv/vits
5: tts_models/et/cv/vits
6: tts_models/ga/cv/vits
7: tts_models/en/ek1/tacotron2
8: tts_models/en/ljspeech/tacotron2-DDC
9: tts_models/en/ljspeech/tacotron2-DDC_ph
10: tts_models/en/ljspeech/glow-tts
11: tts_models/en/ljspeech/speedy-speech
12: tts_models/en/ljspeech/tacotron2-DCA
13: tts_models/en/ljspeech/vits
14: tts_models/en/ljspeech/vits–neon
15: tts_models/en/ljspeech/fast_pitch
16: tts_models/en/ljspeech/overflow
17: tts_models/en/ljspeech/neural_hmm
18: tts_models/en/vctk/vits
19: tts_models/en/vctk/fast_pitch
20: tts_models/en/sam/tacotron-DDC
21: tts_models/en/blizzard2013/capacitron-t2-c50
22: tts_models/en/blizzard2013/capacitron-t2-c150_v2
23: tts_models/en/multi-dataset/tortoise-v2
24: tts_models/en/jenny/jenny
25: tts_models/es/mai/tacotron2-DDC
26: tts_models/es/css10/vits
27: tts_models/fr/mai/tacotron2-DDC
28: tts_models/fr/css10/vits
29: tts_models/uk/mai/glow-tts
30: tts_models/uk/mai/vits
31: tts_models/zh-CN/baker/tacotron2-DDC-GST
32: tts_models/nl/mai/tacotron2-DDC
33: tts_models/nl/css10/vits
34: tts_models/de/thorsten/tacotron2-DCA
35: tts_models/de/thorsten/vits
36: tts_models/de/thorsten/tacotron2-DDC
37: tts_models/de/css10/vits-neon
38: tts_models/ja/kokoro/tacotron2-DDC
39: tts_models/tr/common-voice/glow-tts
40: tts_models/it/mai_female/glow-tts
41: tts_models/it/mai_female/vits
42: tts_models/it/mai_male/glow-tts
43: tts_models/it/mai_male/vits
44: tts_models/ewe/openbible/vits
45: tts_models/hau/openbible/vits
46: tts_models/lin/openbible/vits
47: tts_models/tw_akuapem/openbible/vits
48: tts_models/tw_asante/openbible/vits
49: tts_models/yor/openbible/vits
50: tts_models/hu/css10/vits
51: tts_models/el/cv/vits
52: tts_models/fi/css10/vits
53: tts_models/hr/cv/vits
54: tts_models/lt/cv/vits
55: tts_models/lv/cv/vits
56: tts_models/mt/cv/vits
57: tts_models/pl/mai_female/vits
58: tts_models/pt/cv/vits
59: tts_models/ro/cv/vits
60: tts_models/sk/cv/vits
61: tts_models/sl/cv/vits
62: tts_models/sv/cv/vits
63: tts_models/ca/custom/vits
64: tts_models/fa/custom/glow-tts
65: tts_models/bn/custom/vits-male
66: tts_models/bn/custom/vits-female
Name format: type/language/dataset/model
1: vocoder_models/universal/libri-tts/wavegrad
2: vocoder_models/universal/libri-tts/fullband-melgan
3: vocoder_models/en/ek1/wavegrad
4: vocoder_models/en/ljspeech/multiband-melgan
5: vocoder_models/en/ljspeech/hifigan_v2
6: vocoder_models/en/ljspeech/univnet
7: vocoder_models/en/blizzard2013/hifigan_v2
8: vocoder_models/en/vctk/hifigan_v2
9: vocoder_models/en/sam/hifigan_v2
10: vocoder_models/nl/mai/parallel-wavegan
11: vocoder_models/de/thorsten/wavegrad
12: vocoder_models/de/thorsten/fullband-melgan
13: vocoder_models/de/thorsten/hifigan_v1
14: vocoder_models/ja/kokoro/hifigan_v1
15: vocoder_models/uk/mai/multiband-melgan
16: vocoder_models/tr/common-voice/hifigan
Name format: type/language/dataset/model
1: voice_conversion_models/multilingual/vctk/freevc24
——————————————————

今回は日本語に対応しているtacotron2-DDCを利用してみます。

①テキスト文言の場合
以下のコマンドを実行します。

–textは、音声合成対象のテキスト文言を指しています。
–model_nameは、利用するモデル名です。
–out_pathは、出力する音声ファイル名を指定します。

問題なければ、該当ディレクトリに、output.wavが出来ており、再生すると音声合成で「こんにちは、世界!」と再生されるはずです!

 

②テキストファイルなどの場合
ファイル指定ができないため、事前にファイルを読み込んで、その中身を渡す必要があります。
つまり、プログラムを描いて該当のテキストファイルを開き、その文言を渡して音声合成をかけるようにする必要があります。
文章が長い場合には、1行づつ渡すなどの考慮が必要です。

 

今回は、ここまで。
次回は時間があれば、今度は人の声を学習させて新しいモデルを追加する方法を記載できればと思います。

WEB DESIGN

RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。

「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。

納品後は「Webサイト運用管理サービス(保守)」を締結しますので、納品後の運用やメンテナンスなどワンステップで対応。お客様は安心して本業に集中する事ができます。

しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!(税別)で提供しております。

本業が忙しい中小企業様に大変ご好評を頂いている商品です。

  • 独自ドメイン取得

    独自ドメイン取得

  • サーバー開設&設定

    サーバー開設&設定

  • レイアウト設計

    レイアウト設計

  • レスポンシブルデザイン

    レスポンシブルデザイン
    (*1)

  • 検索エンジン最適化(SEO対策)

    検索エンジン最適化
    (SEO対策)

  • 場所Maps

    場所Maps

  • お問い合わせフォーム

    お問い合わせフォーム

  • SSL化

    SSL化

  • 各種SNS連携

    各種SNS連携

  • 運用マニュアル

    運用マニュアル

≫詳細はこちら

MENU