Skip to content

ros2 に対応した voicevox による tts パッケージ

License

Notifications You must be signed in to change notification settings

GAI-313/voicevox_ros2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

voicevox_ros2

アップデート

 あらたなキャラクターに対応!
 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

Publisher

 Pub&Sub 通信で VoiceVox_Ros2 を使用する場合

  • トピック
    /voicevox_ros2/speaker
  • メッセージタイプ
    voicevox_interface/msg/Speaker
    Speaker.text # 発音させたい文字列
    Speaker.id # 発音するキャラクターIDを指定
    
    キャラクターIDについては、 キャラクターID一覧 を参照してください。

Service

 サービスから VoiceVox_Ros2 を使用する場合

  • クライアント
    /voicevox_ros2/speaker_srv
  • メッセージタイプ
    voicevox_interface/srv/Speaker
    Speaker.text # 発音させたい文字列
    Speaker.id # 発音するキャラクターIDを指定
    ---
    return bool
    
    キャラクターIDについては、 キャラクターID一覧 を参照してください。

メソッド tts_speaker を使用する

 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

 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 一覧

キャラクター名 スタイル 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

About

ros2 に対応した voicevox による tts パッケージ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published