No version for distro humble showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

No version for distro jazzy showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

No version for distro kilted showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

No version for distro lyrical showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

No version for distro rolling showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

No version for distro github showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

No version for distro galactic showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

No version for distro iron showing melodic. Known supported distros are highlighted in the buttons above.

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange

Package Summary

Version 3.0.1
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/jsk-ros-pkg/jsk_3rdparty.git
VCS Type git
VCS Version master
Last Updated 2026-11-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

VOICEVOX: AI speech synthesis

Additional Links

Maintainers

  • Iori Yanokura
  • Michitoshi Tsubaki

Authors

  • Iori Yanokura

voicevox

ROS Interface for VOICEVOX (AI speech synthesis)

This package supports both ROS 1 and ROS 2 with the same launch arguments and environment variables. For ROS 2, read roslaunch voicevox voicevox_texttospeech.launch as ros2 launch voicevox voicevox_texttospeech.launch.xml and rosrun as ros2 run.

Quick Start

Choose the deployment pattern that best fits your needs:

# Pattern A: Direct Docker + ROS client (Multi-machine) | 直接Docker + ROSクライアント(マルチマシン)
# Server machine:
docker run --rm --gpus all -p '50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern B: ROS-managed Docker + ROS client (Multi-machine) | ROS管理Docker + ROSクライアント(マルチマシン)
# Server machine:
roslaunch voicevox voicevox_texttospeech.launch docker_only:=true
# Client machine:
roslaunch voicevox voicevox_texttospeech.launch host:=<server_ip> port:=50021

# Pattern C: All-in-one (Docker + ROS on same machine) | オールインワン(同一マシンでDocker+ROS)
roslaunch voicevox voicevox_texttospeech.launch use_docker:=true

# Pattern D: Local VOICEVOX without Docker (CPU only) | ローカルVOICEVOX(Dockerなし、CPU版)
# VOICEVOX engine is automatically installed during catkin build
roslaunch voicevox voicevox_texttospeech.launch

Patterns A-C provide GPU acceleration support through Docker. Pattern D runs locally with CPU only. パターンA-CはDockerを通じたGPUによる高速な音声合成をサポート。パターンDはCPUのみでローカル実行。

TERM

VOICEVOX is basically free to use, but please check the terms of use below.

TERM

Each voice synthesis character has its own rules. Please use this package according to those terms.

Character name term link
四国めたん https://zunko.jp/con_ongen_kiyaku.html
ずんだもん https://zunko.jp/con_ongen_kiyaku.html
春日部つむぎ https://tsukushinyoki10.wixsite.com/ktsumugiofficial/利用規約
波音リツ http://canon-voice.com/kiyaku.html
雨晴はう https://amehau.com/?page_id=225
玄野武宏 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
白上虎太郎 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
青山龍星 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
冥鳴ひまり https://kotoran8zunzun.wixsite.com/my-site/利用規約
九州そら https://zunko.jp/con_ongen_kiyaku.html
もち子さん https://vtubermochio.wixsite.com/mochizora/利用規約
剣崎雌雄 https://frontier.creatia.cc/fanclubs/413/posts/4507
WhiteCUL https://www.whitecul.com/guideline
後鬼 https://ついなちゃん.com/voicevox_terms/
No.7 https://voiceseven.com/#j0200
ちび式じい https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4
櫻歌ミコ https://voicevox35miko.studio.site/rule
小夜/SAYO https://316soramegu.wixsite.com/sayo-official/guideline
ナースロボ_タイプT https://www.krnr.top/rules
†聖騎士 紅桜† https://commons.nicovideo.jp/material/nc296132
雀松朱司 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
麒ヶ島宗麟 https://virvoxproject.wixsite.com/official/voicevoxの利用規約
春歌ナナ https://nanahira.jp/haruka_nana/guideline.html
猫使アル https://nekotukarb.wixsite.com/nekonohako/利用規約
猫使ビィ https://nekotukarb.wixsite.com/nekonohako/利用規約
中国うさぎ https://zunko.jp/con_ongen_kiyaku.html
栗田まろん https://aivoice.jp/character/maron/
あいえるたん https://www.infiniteloop.co.jp/special/iltan/terms/
満別花丸 https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule
琴詠ニア https://commons.nicovideo.jp/works/nc315435
Voidoll https://blog.nicovideo.jp/niconews/224589.html
中部つるぎ https://zunko.jp/con_ongen_kiyaku.html
ぞん子 https://zonko.zone-energy.jp/guideline

Installation

Build this package.

cd /path/to/catkin_workspace
catkin build voicevox

For ROS 2 (Python 3.12 or newer is required; python packages are installed with uv)

cd /path/to/colcon_workspace
colcon build --packages-up-to voicevox

Optional (Using Docker with GPU acceleration)

VOICEVOX supports Docker deployment with GPU acceleration, which enables significantly faster speech synthesis compared to CPU-only processing.

Prerequisites

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package voicevox

3.0.1 (2026-11-10)

3.0.0 (2026-11-06)

  • Merge pull request #581 from k-okada/ros2-buildfarm-ros-environment Fix ROS2 buildfarm binary jobs: ros_environment, bundled flac, numpy wheel

  • [voicevox, chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, ros_speech_recognition, rospatlite, sesame_ros, switchbot_ros] depend on ros_environment for ROS2 buildfarm The buildfarm builds each package with only its own build dependencies, so without ros_environment $ROS_VERSION is empty and CMakeLists.txt takes the ROS1 branch (same as jsk_common#1835). voicevox also guesses ROS_VERSION from AMENT_PREFIX_PATH when it is unset. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into fix_hoya

  • Merge pull request #573 from Michi-Tsubaki/voicevox-ros1-ros2 [voicevox] Support both ROS1 and ROS2 build

  • Merge pull request #13 from k-okada/voicevox-string-soundrequest [voicevox] speak both SoundRequest and text (std_msgs/String) with output_type:=wav and audio

  • [voicevox] README: speak SoundRequest and text (std_msgs/String) Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=wav: speak text (std_msgs/String) on robotsound_jp/text too sound_play only subscribes SoundRequest, so text_to_sound_request.py relays text (std_msgs/String) on robotsound_jp/text to sound_play as a SoundRequest to say (arg2: ~speaker), so that both output_type:=wav and output_type:=audio speak both SoundRequest on robotsound_jp and text on robotsound_jp/text. It uses rospy/rclpy directly, as jsk_ros1_ros2_compat is not a ROS1 dependency. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] output_type:=audio: speak SoundRequest on robotsound_jp too request_synthesis.py --output-type audio also subscribes SoundRequest on robotsound (arg: text, arg2: voice, e.g. from SoundClient.say()) as sound_play does, so that clients of sound_play work with both output_type:=wav and output_type:=audio. Text (std_msgs/String) moves from robotsound_jp to robotsound_jp/text, as robotsound_jp is now SoundRequest. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge pull request #12 from mqcmd196/fix/voicevox-audio-info Fix audio metadata for streamed VOICEVOX PCM

  • Restore text subscription queue depth

  • Remove redundant audio_info republish

  • Fix audio metadata for streamed VOICEVOX PCM

  • [voicevox] remove AMENT_IGNORE, as voicevox now supports ROS2 Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • Merge branch 'master' into voicevox-ros1-ros2

  • Merge pull request #575 from k-okada/ros2-support Add ROS2 (jazzy) support to chaplus_ros, emotion_analyzer, gdrive_ros, google_chat_ros, influxdb_store, power_switching_tools_ros, respeaker_ros, rospatlite, sesame_ros, switchbot_ros

  • Merge pull request #11 from k-okada/voicevox-gpu-on-ros1-ros2 [voicevox] Add use_gpu option and GPU warm-up (#577) on top of ROS1/ROS2 support

  • [voicevox] Add use_gpu to the ROS2 launch file Same as voicevox_texttospeech.launch: pass use_gpu to run-voicevox-docker. Co-Authored-By: Claude Opus 5.5 <<noreply@anthropic.com>>

  • [voicevox] Warm up the VOICEVOX GPU engine after the docker container starts

  • [voicevox] Add use_gpu option to select the GPU or CPU docker image

  • Add ROS 2 command for listing speakers Updated command for listing speakers to include ROS 2. Co-authored-by: Copilot Autofix powered by AI <<175728472+Copilot@users.noreply.github.com>>

  • [GA] add ROS2 (jazzy) CI and AMENT_IGNORE packages not yet ported to ROS2

    - ros2.yaml: industrial_ci on jazzy. The ROS2 ports depend on jsk_ros1_ros2_compat >= 3.0.2 (jsk_common), installed by rosdep from its jazzy release.

    • AMENT_IGNORE the packages not ported to ROS2 yet.

    - config.yml: AMENT_IGNORE is treated as CATKIN_IGNORE by rosdep's package discovery, so remove them before rosdep install in the ROS1 jobs (same as jsk_common). Also set ROS_VERSION=1 for indigo, which

File truncated at 100 lines see the full file

Launch files

  • launch/voicevox_texttospeech.launch
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true] — Respawn sound_play node or not (default: true)
      • default_speaker [default: $(optenv VOICEVOX_DEFAULT_SPEAKER_ID 2)] — Default speaker for VOICEVOX
      • host [default: $(optenv VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(optenv VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1] — Number of cpu threads
      • use_docker [default: false] — Use docker or not (default: false)
      • docker_only [default: false] — Launch only docker container without sound_play node (default: false)
      • remote_only [default: false] — Connect to remote server without starting local server (default: false)
      • output_type [default: wav] — wav: play the speech with sound_play (robotsound_jp action). audio: publish it as raw PCM on audio (audio_common_msgs/AudioData) for e.g. audio_play (format:=wave), for SoundRequest on robotsound_jp. Both also speak text (std_msgs/String) on robotsound_jp/text; needs jsk_ros1_ros2_compat (default: wav)
      • sample_rate [default: 16000] — Sample rate of the audio topic (output_type:=audio)
      • volume_scale [default: 1.0] — Volume of the audio topic (output_type:=audio)
      • use_gpu [default: false] — Use GPU for the docker container (default: false)
  • launch/voicevox_texttospeech.launch.xml
      • device [default: ]
      • launch_sound_play [default: true]
      • sound_play_respawn [default: true]
      • default_speaker [default: $(env VOICEVOX_DEFAULT_SPEAKER_ID 2)]
      • host [default: $(env VOICEVOX_TEXTTOSPEECH_URL localhost)]
      • port [default: $(env VOICEVOX_TEXTTOSPEECH_PORT 50021)]
      • cpu_num_threads [default: 1]
      • use_docker [default: false]
      • docker_only [default: false]
      • remote_only [default: false]
      • output_type [default: wav]
      • sample_rate [default: 16000]
      • volume_scale [default: 1.0]
      • use_gpu [default: false]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged voicevox at Robotics Stack Exchange