2024/09/18(水) [n年前の日記]
#2 [python] edge-ttsを試用
英語に対応した音声合成ソフトを使いたいとググっていたら、PythonからMicrosoft Edge経由で音声合成(TTS)を呼び出せる、edge-tts なるモジュールがあると知った。
_Pythonで音声合成 〜edge-ttsを利用して英語の音声ファイルを作成〜 | 東陽テクニカ | “はかる"技術で未来を創る | ワン・テクノロジーズ・カンパニー
_UbuntuやRaspberry Piでも利用可能な音声合成エンジン、Edge-TTSの導入方法 - uepon日々の備忘録
_[Pythonプログラミング]最新のAI音声合成ライブラリEdgeTTSを試してみる : 乙Py先生のプログラミング教室
気になったので試用してみることにした。環境は Windows10 x64 22H2 + Python 3.10.10 64bit。
_Pythonで音声合成 〜edge-ttsを利用して英語の音声ファイルを作成〜 | 東陽テクニカ | “はかる"技術で未来を創る | ワン・テクノロジーズ・カンパニー
_UbuntuやRaspberry Piでも利用可能な音声合成エンジン、Edge-TTSの導入方法 - uepon日々の備忘録
_[Pythonプログラミング]最新のAI音声合成ライブラリEdgeTTSを試してみる : 乙Py先生のプログラミング教室
気になったので試用してみることにした。環境は Windows10 x64 22H2 + Python 3.10.10 64bit。
◎ インストール :
pip でインストール。
色々なモジュールがインストールされた…。
pip install edge-tts
色々なモジュールがインストールされた…。
> pip install edge-tts Collecting edge-tts Downloading edge_tts-6.1.12-py3-none-any.whl.metadata (4.0 kB) Collecting aiohttp>=3.8.0 (from edge-tts) Downloading aiohttp-3.10.5-cp310-cp310-win_amd64.whl.metadata (7.8 kB) Collecting certifi>=2023.11.17 (from edge-tts) Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB) Collecting aiohappyeyeballs>=2.3.0 (from aiohttp>=3.8.0->edge-tts) Downloading aiohappyeyeballs-2.4.0-py3-none-any.whl.metadata (5.9 kB) Collecting aiosignal>=1.1.2 (from aiohttp>=3.8.0->edge-tts) Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB) Collecting attrs>=17.3.0 (from aiohttp>=3.8.0->edge-tts) Downloading attrs-24.2.0-py3-none-any.whl.metadata (11 kB) Collecting frozenlist>=1.1.1 (from aiohttp>=3.8.0->edge-tts) Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl.metadata (12 kB) Collecting multidict<7.0,>=4.5 (from aiohttp>=3.8.0->edge-tts) Downloading multidict-6.1.0-cp310-cp310-win_amd64.whl.metadata (5.1 kB) Collecting yarl<2.0,>=1.0 (from aiohttp>=3.8.0->edge-tts) Downloading yarl-1.11.1-cp310-cp310-win_amd64.whl.metadata (49 kB) Collecting async-timeout<5.0,>=4.0 (from aiohttp>=3.8.0->edge-tts) Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB) Requirement already satisfied: typing-extensions>=4.1.0 in d:\python\python310-64\lib\site-packages (from multidict<7.0,>=4.5->aiohttp>=3.8.0->edge-tts) (4.5.0) Requirement already satisfied: idna>=2.0 in d:\python\python310-64\lib\site-packages (from yarl<2.0,>=1.0->aiohttp>=3.8.0->edge-tts) (3.4) Downloading edge_tts-6.1.12-py3-none-any.whl (29 kB) Downloading aiohttp-3.10.5-cp310-cp310-win_amd64.whl (379 kB) Downloading certifi-2024.8.30-py3-none-any.whl (167 kB) Downloading aiohappyeyeballs-2.4.0-py3-none-any.whl (12 kB) Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB) Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB) Downloading attrs-24.2.0-py3-none-any.whl (63 kB) Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl (50 kB) Downloading multidict-6.1.0-cp310-cp310-win_amd64.whl (28 kB) Downloading yarl-1.11.1-cp310-cp310-win_amd64.whl (110 kB) Installing collected packages: multidict, frozenlist, certifi, attrs, async-timeout, aiohappyeyeballs, yarl, aiosignal, aiohttp, edge-tts Attempting uninstall: certifi Found existing installation: certifi 2022.12.7 Uninstalling certifi-2022.12.7: Successfully uninstalled certifi-2022.12.7 Successfully installed aiohappyeyeballs-2.4.0 aiohttp-3.10.5 aiosignal-1.3.1 async-timeout-4.0.3 attrs-24.2.0 certifi-2024.8.30 edge-tts-6.1.12 frozenlist-1.4.1 multidict-6.1.0 yarl-1.11.1
◎ 動作確認 :
edge-tts というコマンドと、edge-playback というコマンドが入るらしい。
edge-tts は、音声合成の結果をファイルとして出力する。mp3を出力して動作確認してみる。
hello.mp3、jhello.mp3 が保存された。再生してみたら、たしかに「ハローワールド」「こんにちは世界」と喋ってる。
edge-playback は、その場で音声として鳴らしてくれるけれど、mpv という再生ソフトが必要になるらしい。Ubuntu Linux 20.04 LTS上で mpv をインストールして試してみたけれどたしかに音声がその場で鳴った。しかし、Windowsではどうすればいいんだろう…?
Windows版のmpvもあるらしい。mpv-x86_64-20240918-git-22620af.7z を入手して、解凍して、任意のディレクトリに置いて、環境変数PATHに追加してみたら動作してくれた。
_mpv.io
_mpv_rのインストール方法(Windows)|kwks_workshop
> which edge-tts "D:\Python\Python310-64\Scripts\edge-tts.exe" > which edge-playback "D:\Python\Python310-64\Scripts\edge-playback.exe"
edge-tts は、音声合成の結果をファイルとして出力する。mp3を出力して動作確認してみる。
edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.vtt edge-tts --text "こんにちは、世界" -v ja-JP-NanamiNeural --write-media jhello.mp3 --write-subtitles jhello.vtt
hello.mp3、jhello.mp3 が保存された。再生してみたら、たしかに「ハローワールド」「こんにちは世界」と喋ってる。
edge-playback は、その場で音声として鳴らしてくれるけれど、mpv という再生ソフトが必要になるらしい。Ubuntu Linux 20.04 LTS上で mpv をインストールして試してみたけれどたしかに音声がその場で鳴った。しかし、Windowsではどうすればいいんだろう…?
Windows版のmpvもあるらしい。mpv-x86_64-20240918-git-22620af.7z を入手して、解凍して、任意のディレクトリに置いて、環境変数PATHに追加してみたら動作してくれた。
_mpv.io
_mpv_rのインストール方法(Windows)|kwks_workshop
◎ 音声の種類 :
edge-tts -l または edge-tts --list-voices で、選択できる音声の種類が表示される。めちゃくちゃたくさんあるなと思ったけれど、どうやら言語別で用意されてるようで、実際には男性か女性かぐらいしか選べない感じもする。
日本語に対応しているのは以下だろうか。
英語(en-us)は結構あるな…。男女別で分けると以下のような感じだろうか。
日本語に対応しているのは以下だろうか。
Name: ja-JP-KeitaNeural Gender: Male Name: ja-JP-NanamiNeural Gender: Female
英語(en-us)は結構あるな…。男女別で分けると以下のような感じだろうか。
Gender: Female en-US-AnaNeural en-US-AriaNeural en-US-AvaMultilingualNeural en-US-AvaNeural en-US-EmmaMultilingualNeural en-US-EmmaNeural en-US-JennyNeural en-US-MichelleNeural Gender: Male en-US-AndrewMultilingualNeural en-US-AndrewNeural en-US-BrianMultilingualNeural en-US-BrianNeural en-US-ChristopherNeural en-US-EricNeural en-US-GuyNeural en-US-RogerNeural en-US-SteffanNeural
[ ツッコむ ]
以上です。