Pythonでは、音声合成でテキスト情報を音声に変換する技術を利用できます。
Pythonの音声合成は、いくつかの方法がありますが、本記事ではVOICEVOXを利用して、音声合成を行います。
VOICEVOXコアを用いた音声合成を紹介します
- 音声合成とは
- VOICEVOXによる音声合成
- VOICEVOXコアの環境構築
- VOICEVOXコアの使い方
音声合成とは
音声合成は、コンピュータを使ってテキスト情報を人工的に音声に変換する技術です。
テキスト情報を人間の声に近い形で再生できるため、聴覚で情報処理する場合に活用しています。
初期の音声合成は、単純な機械音でしたが、現在ではAIを用いた高度な技術により、自然な音声で表現生成されるようになっています。
VOICEVOXとは
VOICEVOXは、無料で利用できる中品質なテキスト読み上げソフトウェアです。
日本語の音声を生成でき、音声の抑揚や感情を表現できる点について、品質が高いソフトウェアです。
Open JTalkは機械感のある音声を高速で生成できるのに対して、VOICEVOXは高品質な音声が生成可能ですが、処理速度はOpen JTalkより低速となっています。
VOICEVOXコアとは
VOICEVOXの音声合成処理のコア部分は、GitHubでオープンソースとして公開されており、誰でも無料で利用することができます。
Pythonでも利用することができるため、使いやすい音声合成ソフトウェアの1つです。
VOICEVOXコアの環境構築
VOICEVOXコアの環境構築手順を紹介します。
Pythonバインディングのインストール
PythonでVOICEVOXを利用できるように、Pythonバインディングをインストールします。
コマンドライン
wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.4/voicevox_core-0.15.4+cpu-cp38-abi3-linux_x86_64.whl
pip install voicevox_core-0.15.4+cpu-cp38-abi3-linux_x86_64.whl
関連ソフトウェアのダウンロード
関連ソフトウェアをダンロードします。
コマンドライン
binary=download-linux-x64
curl -sSfL https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary} -o download
chmod +x download
./download -o ./example/python
rm -r ./example/python/{model,VERSION,*voicevox_core*}
VOICEVOXコアの使い方
VOICEVOXコアの使い方を紹介します。
VOICEVOXコアで音声合成
VOICEVOXコアで音声合成します。
ソースコード
from pathlib import Path
import voicevox_core
from voicevox_core import AccelerationMode, AudioQuery, VoicevoxCore
open_jtalk_dict_dir = './open_jtalk_dic_utf_8-1.11'
out = Path('output.wav')
acceleration_mode = AccelerationMode.AUTO
def voicevox_core_tts(text, speaker_id):
core = VoicevoxCore(
acceleration_mode=acceleration_mode, open_jtalk_dict_dir=open_jtalk_dict_dir
)
core.load_model(speaker_id)
audio_query = core.audio_query(text, speaker_id)
wav = core.synthesis(audio_query, speaker_id)
out.write_bytes(wav)
if __name__ == "__main__":
voicevox_core_tts("テスト", 2)
コマンド実行例
$ python3 -B python-voicevox-core.py
$ ls
output.wav python-voicevox-core.py
VOICEVOXの声を指定
VOICEVOXは、スピーカーIDの指定で生成する声を指定することができます。
VOICEVOXでは、キャラクターにちなんだ声を生成することができます。
各キャラクターで用意された声のスタイルも指定でき、より感情が付与された音声を生成することができます。
キャラクター | ID : スタイル |
---|---|
四国めたん | 2 : ノーマル 0 : あまあま 6 : ツンツン 4 : セクシー 36 : ささやき 37 : ヒソヒソ |
ずんだもん | 3 : ノーマル 1 : あまあま 7 : ツンツン 5 : セクシー 22 : ささやき 38 : ヒソヒソ |
春日部つむぎ | 8 : ノーマル |
波音リツ | 9 : ノーマル |
雨晴はう | 10 : ノーマル |
玄野武宏 | 11 : ノーマル 39 : 喜び 40 : ツンギレ 41 : 悲しみ |
白上虎太郎 | 12 : ふつう 32 : わーい 33 : びくびく 34 : おこ 35 : びえーん |
青山龍星 | 13 : ノーマル |
冥鳴ひまり | 14 : ノーマル |
九州そら | 16 : ノーマル 15 :あまあま 18 : ツンツン 17 : セクシー 19 : ささやき |
もち子さん | 20 : ノーマル |
剣崎雌雄 | 21 : ノーマル |
WhiteCUL | 23 : ノーマル 24 : たのしい 25 : かなしい 26 : びえーん |
後鬼 | 27 : 人間ver. 28 : ぬいぐるみver. |
No.7 | 29 : ノーマル 30 : アナウンス 31 : 読み聞かせ |
ちび式じい | 42 : ノーマル |
櫻歌ミコ | 43 : ノーマル 44 : 第二形態 45 : ロリ |
小夜/SAYO | 46 : ノーマル |
ナースロボ_タイプT | 47 : ノーマル 48 : 楽々 49 : 恐怖 50 : 内緒話 |
†聖騎士 紅桜† | 51 : ノーマル |
雀松朱司 | 52 : ノーマル |
麒ヶ島宗麟 | 53 : ノーマル |
まとめ
VOICEVOXコアを用いた音声合成の方法を紹介しました。
- VOICEVOXコアをインストールする
- 関連ソフトウェアをダウンロードする
- Pythonで音声合成できる
音声アシスタントや、音声変換(Text-To-Speech)の機能を作成したい場合は、音声合成の実装が不可欠です。
VOICEVOXでは、テキストファイルを音声ファイル化することができるため、テキスト情報をインプットに、コンピュータが発音するアプリケーションを作成することができます。