あらたなキャラクターに対応!
API を改変しました。
ワークスペースディレクトリの /src
にこのパッケージをクローンしてください。
cd path/to/your_ws/src
git clone https://github.com/GAI-313/voicevox_ros2.git
次に、colcon build
でパッケージをビルドしてください。
cd /path/to/your_ws
colcon build --packages-up-to voicevox_ros2
--packages-up-to
オプションを使用することで特定のパッケージとそれに依存するパッケージをビルドします。
依存パッケージ voicevox_ros2_interface
がビルドされると自動的に VOICEVOX_core がインストールされます。
VoiceVox_Ros2_Core (メインノード)を起動するコマンド
ros2 run voicevox_ros2 voicevox_ros2_core
正常に VoiceVox_Ros2_Core が起動すると、以下のようなログが表示されます。
[INFO] [xxxx.xxxx] [voicevox_ros2_core]: start voicevox_ros2
正常に VoiceVox_Ros2_Core が動作しているか確認したい場合は、以下のコマンドで確認できます。
- Publisher によるテスト
ros2 run voicevox_ros2 pub
- Service によるテスト
ros2 run voicevox_ros2 srv
正常に VoiceVox_Ros2_Core が動作すると、以下のようなログが表示され、音声が再生されます。
[INFO] [xxxx.xxxx] [voicevox_ros2_core]: GENERATE voice
Pub&Sub 通信で VoiceVox_Ros2 を使用する場合
- トピック
/voicevox_ros2/speaker - メッセージタイプ
voicevox_interface/msg/SpeakerキャラクターIDについては、 キャラクターID一覧 を参照してください。Speaker.text # 発音させたい文字列 Speaker.id # 発音するキャラクターIDを指定
サービスから VoiceVox_Ros2 を使用する場合
- クライアント
/voicevox_ros2/speaker_srv - メッセージタイプ
voicevox_interface/srv/SpeakerキャラクターIDについては、 キャラクターID一覧 を参照してください。Speaker.text # 発音させたい文字列 Speaker.id # 発音するキャラクターIDを指定 --- return bool
voicevox_ros2 には簡易的に voicevox_ros2 を使用するためのメソッド
voicevox_ros2.voicevox_ros2_tts.say
が用意されており、
setup.sh
を実行していれば、すぐにこのメソッドを使用することができます。このメソッドを使用するには、以下のサンプルコードを参考にしてください。
#!/usr/bin/emv python3
## ROS2 ノード関連
from rclpy.node import Node
import rclpy
## tts_speaker メソッドをインポート
from voicevox_ros2.voicevox_ros2_tts import say
# debug
if __name__ == '__main__':
## メソッドを使用する前にノードを立ててください。
rclpy.init()
node = Node('sample')
say(node, text='こんにちは!ボイスボックスロスへようこそ')
say(node, text='キャラクターIDを変更すると、しゃべるキャラクターが変わります', id=2)
tts_speaker
は、以下の引数を求めます。
-
node
(Node)
Nodeオブジェクトを代入してください。発話のために使用します。 -
text
(str)
VoiceVox に発音させたいテキストを入力してください。 -
id
デフォルト値:3
(int)
VoiceVox から発音するキャラクターIDを入力してください。デフォルトキャラクターは ずんだもん(ノーマル) です。キャラクターIDについては、 キャラクターID一覧 を参照してください。 -
wait
デフォルト理:True
(Bool)
VoiceVox からの発話が終了するまで待機するかどうかを設定します。 True の場合は発話が完了するまでプロセスは待機します。 False の場合は発話が完了するまで待機せず次のプロセスへ移行します。
say
関数が実行されているとき、VoiceVox から発話されず、いかのワーニングメッセージが表示された場合、voicevox_ros2_core
ノードが起動していないことを示しています。
[WARN] [1726359383.931152266] [sample]: voicevox_ros2 is not available. wait again
voice_saver
を使用すると、指定した場所に任意の音声ファイルを保存します。このノードの使用方法は以下のとおりです。ヘルプを表示するにはオプション -h
をつけます。
ros2 run voicevox_ros2 voice_saver -h
カレントディレクトリに こんにちは
と発音する音声ファイルを生成するには、オプション -t
に発話したいテキストを入力します。
ros2 run voicevox_ros2 voice_saver -t こんにちは
オプションは以下のとおりです。
オプション | デフォルト値 | 概要 |
---|---|---|
-t , --text | なし | 発話したいテキストを入力してください。必須引数です。 |
-i , --id | 3 | 発話させるキャラクターIDを設定します。 キャラクターIDは キャラクターID一覧 を参照してください。 |
-p , --path | カレントディレクトリ | ファイルの保存先を絶対パスで選択します。 |
-f , --file_name | output | ファイル名をします。拡張子を入力する必要はありません。 |
--speak | false | ファイル作成後その保存した音声を発話させるかどうかを指定します。true にすると発音します。 |
voice_saver の詳しい使用方法については voice_saver を使う を参照してください。
voicevox_ros2 を再インストールまたはアップデートする場合、以下の手順に従って作業を行ってください。
アップデートをする場合は新しいリポジトリを pull します。
git pull origin humble
次に voicevox_core ディレ雨鳥を削除してください。
rm -rf voicevox_core
次に ~/.bashrc
に追記されている以下のコード4行を削除してください。
#voicevox_ros2 setting
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:...
export JTALK_PATH=".../voicevox_ros2/voicevox_core/open_jtalk_dic_utf_8-1.11"
export KANAENG_PATH=".../voicevox_ros2/voicevox_core/bep-eng.dic"
最後にこのパッケージをダウンロードしているワークスペース上でビルドしてください。
colcon build --packages-up-to voicevox_ros2
キャラクター名 | スタイル | ID |
---|---|---|
四国めたん | ノーマル | 2 |
あまあま | 0 | |
ツンツン | 6 | |
セクシー | 4 | |
ささやき | 36 | |
ヒソヒソ | 37 | |
ずんだもん | ノーマル | 3 |
あまあま | 1 | |
ツンツン | 7 | |
セクシー | 5 | |
ささやき | 22 | |
ヒソヒソ | 38 | |
ヘロヘロ | 75 | |
なみだめ | 76 | |
春日部つむぎ | ノーマル | 8 |
雨晴はう | ノーマル | 10 |
波音リツ | ノーマル | 9 |
クイーン | 65 | |
玄野武宏 | ノーマル | 11 |
喜び | 39 | |
ツンギレ | 40 | |
悲しみ | 41 | |
白上虎太郎 | ふつう | 12 |
わーい | 32 | |
びくびく | 33 | |
おこ | 34 | |
びえーん | 35 | |
青山龍星 | ノーマル | 13 |
熱血 | 81 | |
不機嫌 | 82 | |
喜び | 83 | |
しっとり | 84 | |
かなしみ | 85 | |
囁き | 86 | |
冥鳴ひまり | ノーマル | 14 |
九州そら | ノーマル | 16 |
あまあま | 15 | |
ツンツン | 18 | |
セクシー | 17 | |
ささやき | 19 | |
もち子さん | ノーマル | 20 |
セクシー/あん子 | 66 | |
泣き | 77 | |
怒り | 78 | |
喜び | 79 | |
のんびり | 80 | |
剣崎雌雄 | ノーマル | 21 |
WhiteCUL | ノーマル | 23 |
たのしい | 24 | |
かなしい | 25 | |
びえーん | 26 | |
後鬼 | 人間ver. | 27 |
ぬいぐるみver. | 28 | |
No.7 | ノーマル | 29 |
アナウンス | 30 | |
読み聞かせ | 31 | |
ちび式じい | ノーマル | 42 |
櫻歌ミコ | ノーマル | 43 |
第二形態 | 44 | |
ロリ | 45 | |
小夜/SAYO | ノーマル | 46 |
ナースロボ_タイプT | ノーマル | 47 |
楽々 | 48 | |
恐怖 | 49 | |
内緒話 | 50 | |
†聖騎士 紅桜† | ノーマル | 51 |
雀松朱司 | ノーマル | 52 |
麒ヶ島宗麟 | ノーマル | 53 |
春歌ナナ | ノーマル | 54 |
猫使アル | ノーマル | 55 |
おちつき | 56 | |
うきうき | 57 | |
猫使ビィ | ノーマル | 58 |
おちつき | 59 | |
人見知り | 60 | |
中国うさぎ | ノーマル | 61 |
おどろき | 62 | |
こわがり | 63 | |
へろへろ | 64 | |
栗田まろん | ノーマル | 67 |
あいえるたん | ノーマル | 68 |
満別花丸 | ノーマル | 69 |
元気 | 70 | |
ささやき | 71 | |
ぶりっ子 | 72 | |
ボーイ | 73 | |
琴詠ニア | ノーマル | 74 |