はじめに
ラズパイを喋らせたく、OpenJTalkを使っていろんな文章を読み上げさせてみました。
OpenJTalkは非常に便利でシンプルなコーディングでPythonでも簡単に実行することが可能です。
しかし、もっと自然な感じで話してほしい!!!というのが正直な感想でした。
いろいろと調べてみるとVOICEVOXというものを使うと様々なキャラクターと性格を指定できるみたいです!
魅力的な機能だったのでラズパイに入れてみました。
OpenJTalk関連の記事はこちらをどうぞ
VOICEVOXの導入
VOICEVOX coreのインストール
まずは作業用ディレクトリの作成と仮想環境の作成を行いました。
ラズパイでの仮想環境の実行方法を備忘録として記載します。
source [仮想環境名]/bin/activate
作業用ディレクトリに移動して仮想環境の準備ができたら、
VOICEVOXのインソールを進めていく。
次のコマンドを順番に実施して必要なデータをダウンロードしていきます。
wget https://github.com/VOICEVOX/voicevox_core/archive/refs/tags/0.11.4.zip
unzip 0.11.4.zip
cd voicevox_core-0.11.4/
mkdir release
cd release
wget https://github.com/VOICEVOX/voicevox_core/releases/download/0.11.4/core.zip
unzip -j core.zip
ONNXのインストール
ラズパイのOSのバージョンによって指定コマンドが違うようなので、
次のコマンドで「32bit OS」か「64bit OS」なのか確認します。
cat /proc/cpuinfo
私のラズパイは「32bit OS」だと判明したので次のコマンドを実行します。
cd ~/voicevox_core-0.11.4/
python configure.py --ort_download_link https://github.com/VOICEVOX/onnxruntime-builder/releases/download/1.10.0.1/onnxruntime-linux-armhf-cpu-v1.10.0.tgz
コマンドを実行すると利用するライブラリを指定しろと出てきます。
ここで64bitではない①を指定します。
please enter number to select which library to use.
0: /home/user/ドキュメント/OpenJTalk_projects/voicevox_core-0.11.4/release/libcore_cpu_arm64.so
1: /home/user/ドキュメント/OpenJTalk_projects/voicevox_core-0.11.4/release/libcore_cpu_armhf.so
2: /home/user/ドキュメント/OpenJTalk_projects/voicevox_core-0.11.4/release/libcore_gpu_x64_nvidia.so
3: /home/user/ドキュメント/OpenJTalk_projects/voicevox_core-0.11.4/release/libcore_cpu_x64.so
指定ができたらrequirementsの内容をインストールします。
pip install -r requirements.txt
pip install .
VOICEVOXを実行してみる
導入が完了したので、実行段階に入っていきます。
次のコマンドを順番に実行していきます。
3つ目のコマンドでは読み上げてほしい文章を–text” “の中に記載しています。コマンドを実行すると音声ファイルが生成されます。
そして4つ目のコマンドで生成したファイルを実行します。
cd ~/voicevox_core-0.11.4/example/python/
pip install -r requirements.txt
python run.py --text "「言葉」ではなく「心」で理解できた!" --speaker_id 7 --root_dir_path="../../release"
aplay 「言葉」ではなく「心」で理解できた!-7
実行してみると、想像よりも自然な感じで文章が読み上げられました!!
音声ファイルの生成は少し時間がかかるようですが、読み上げに関してはキャラクターボイスの指定やピッチなど細かい指定ができるので文句ないです!
知っておきたい備忘録
音声の変更方法
音声のキャラクターや性格指定はspeaker_idで変更が可能です。
speaker_id を変更することで、様々な文章をいろんな音声で試すことが可能です。
speaker_idの一覧
四国めたん
・ノーマル : 2
・あまあま : 0
・ツンツン : 6
・セクシー : 4
ずんだもん
・ノーマル : 3
・あまあま : 1
・ツンツン : 7
・セクシー : 5
春日部つむぎ
・ノーマル : 8
雨晴はう
・ノーマル : 10
波音リツ
・ノーマル : 9
玄野武宏
・ノーマル : 11
白上虎太郎
・ノーマル : 12
青山龍星
・ノーマル : 13
冥鳴ひまり
・ノーマル : 14
九州そら
・ノーマル : 16
・あまあま : 15
・ツンツン : 18
・セクシー : 17
・ささやき : 19
コマンドのオプションの内容
音声ファイルを作成する際に、次のオプションを変更することでより好みの音声を出力することが可能です。
特にspeaker_id や 音高の補正値などはいろいろと試してみると面白そうです。
# --text 読み上げる文章
# --speaker_id 文章を読み上げるキャラクターid
# --root_dir_path 必要なファイルが置いてあるパスの指定
# --f0_speaker_id 音高の話者id(デフォルト値はspeaker_id)
# --f0_correct 音高の補正値(デフォルト値は0)
参考リンク
https://voicevox.hiroshiba.jp/
https://ponkichi.blog/raspberry-voicevox/
https://tt-tsukumochi.com/archives/5845