{"id":23772988,"url":"https://github.com/mgonzs13/piper_ros","last_synced_at":"2026-03-01T21:04:48.182Z","repository":{"id":270090916,"uuid":"909311454","full_name":"mgonzs13/piper_ros","owner":"mgonzs13","description":"piper Text-to-Speech (https://github.com/rhasspy/piper) for ROS 2","archived":false,"fork":false,"pushed_at":"2025-04-05T15:50:01.000Z","size":1202,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T16:29:47.234Z","etag":null,"topics":["cpp","piper","piper-tts","ros2","text-to-speech","tts"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mgonzs13.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-28T10:21:31.000Z","updated_at":"2025-04-05T15:49:51.000Z","dependencies_parsed_at":"2025-03-23T18:20:44.347Z","dependency_job_id":null,"html_url":"https://github.com/mgonzs13/piper_ros","commit_stats":null,"previous_names":["mgonzs13/piper_ros"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgonzs13%2Fpiper_ros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgonzs13%2Fpiper_ros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgonzs13%2Fpiper_ros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgonzs13%2Fpiper_ros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mgonzs13","download_url":"https://codeload.github.com/mgonzs13/piper_ros/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248610619,"owners_count":21132974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","piper","piper-tts","ros2","text-to-speech","tts"],"created_at":"2025-01-01T05:21:42.679Z","updated_at":"2026-03-01T21:04:48.177Z","avatar_url":"https://github.com/mgonzs13.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# piper_ros\n\nThis repository provides a set of ROS 2 packages to integrate [piper](https://github.com/OHF-Voice/piper1-gpl) TTS (Text-to-Speech) into ROS 2 using [audio_common](https://github.com/mgonzs13/audio_common).\n\n\u003cdiv align=\"center\"\u003e\n\n[![License: MIT](https://img.shields.io/badge/GitHub-MIT-informational)](https://opensource.org/license/mit) [![GitHub release](https://img.shields.io/github/release/mgonzs13/piper_ros.svg)](https://github.com/mgonzs13/piper_ros/releases) [![Code Size](https://img.shields.io/github/languages/code-size/mgonzs13/piper_ros.svg?branch=main)](https://github.com/mgonzs13/piper_ros?branch=main) [![Last Commit](https://img.shields.io/github/last-commit/mgonzs13/piper_ros.svg)](https://github.com/mgonzs13/piper_ros/commits/main) [![GitHub issues](https://img.shields.io/github/issues/mgonzs13/piper_ros)](https://github.com/mgonzs13/piper_ros/issues) [![GitHub pull requests](https://img.shields.io/github/issues-pr/mgonzs13/piper_ros)](https://github.com/mgonzs13/piper_ros/pulls) [![Contributors](https://img.shields.io/github/contributors/mgonzs13/piper_ros.svg)](https://github.com/mgonzs13/piper_ros/graphs/contributors) [![Python Formatter Check](https://github.com/mgonzs13/piper_ros/actions/workflows/python-formatter.yml/badge.svg?branch=main)](https://github.com/mgonzs13/piper_ros/actions/workflows/python-formatter.yml?branch=main) [![C++ Formatter Check](https://github.com/mgonzs13/piper_ros/actions/workflows/cpp-formatter.yml/badge.svg?branch=main)](https://github.com/mgonzs13/piper_ros/actions/workflows/cpp-formatter.yml?branch=main) [![Doxygen Deployment](https://github.com/mgonzs13/piper_ros/actions/workflows/doxygen-deployment.yml/badge.svg)](https://mgonzs13.github.io/piper_ros/latest)\n\n| ROS 2 Distro |                          Branch                           |                                                                                                     Build status                                                                                                     |                                                                Docker Image                                                                |\n| :----------: | :-------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: |\n|  **Humble**  | [`main`](https://github.com/mgonzs13/piper_ros/tree/main) |  [![Humble Build](https://github.com/mgonzs13/piper_ros/actions/workflows/humble-build-test.yml/badge.svg?branch=main)](https://github.com/mgonzs13/piper_ros/actions/workflows/humble-build-test.yml?branch=main)   |  [![Docker Image](https://img.shields.io/badge/Docker%20Image%20-humble-blue)](https://hub.docker.com/r/mgons/piper_ros/tags?name=humble)  |\n|   **Iron**   | [`main`](https://github.com/mgonzs13/piper_ros/tree/main) |     [![Iron Build](https://github.com/mgonzs13/piper_ros/actions/workflows/iron-build-test.yml/badge.svg?branch=main)](https://github.com/mgonzs13/piper_ros/actions/workflows/iron-build-test.yml?branch=main)      |    [![Docker Image](https://img.shields.io/badge/Docker%20Image%20-iron-blue)](https://hub.docker.com/r/mgons/piper_ros/tags?name=iron)    |\n|  **Jazzy**   | [`main`](https://github.com/mgonzs13/piper_ros/tree/main) |    [![Jazzy Build](https://github.com/mgonzs13/piper_ros/actions/workflows/jazzy-build-test.yml/badge.svg?branch=main)](https://github.com/mgonzs13/piper_ros/actions/workflows/jazzy-build-test.yml?branch=main)    |   [![Docker Image](https://img.shields.io/badge/Docker%20Image%20-jazzy-blue)](https://hub.docker.com/r/mgons/piper_ros/tags?name=jazzy)   |\n|  **Kilted**  | [`main`](https://github.com/mgonzs13/piper_ros/tree/main) |  [![Kilted Build](https://github.com/mgonzs13/piper_ros/actions/workflows/kilted-build-test.yml/badge.svg?branch=main)](https://github.com/mgonzs13/piper_ros/actions/workflows/kilted-build-test.yml?branch=main)   |  [![Docker Image](https://img.shields.io/badge/Docker%20Image%20-kilted-blue)](https://hub.docker.com/r/mgons/piper_ros/tags?name=kilted)  |\n| **Rolling**  | [`main`](https://github.com/mgonzs13/piper_ros/tree/main) | [![Rolling Build](https://github.com/mgonzs13/piper_ros/actions/workflows/rolling-build-test.yml/badge.svg?branch=main)](https://github.com/mgonzs13/piper_ros/actions/workflows/rolling-build-test.yml?branch=main) | [![Docker Image](https://img.shields.io/badge/Docker%20Image%20-rolling-blue)](https://hub.docker.com/r/mgons/piper_ros/tags?name=rolling) |\n\n\u003c/div\u003e\n\n## Table of Contents\n\n1. [Installation](#installation)\n2. [Docker](#docker)\n3. [Usage](#usage)\n4. [Params](#params)\n\n## Installation\n\nTo run piper_ros follow the next commands:\n\n```shell\ncd ~/ros2_ws/src\ngit clone https://github.com/mgonzs13/piper_ros.git\ncd ~/ros2_ws\nvcs import src \u003c src/whisper_ros/dependencies.repos\nrosdep install --from-paths src --ignore-src -r -y\ncolcon build\n```\n\n## Docker\n\nYou can build the piper_ros docker:\n\n```shell\ndocker build -t piper_ros .\n```\n\nThen, you can run the docker container:\n\n```shell\ndocker run -it --rm --device /dev/snd piper_ros\n```\n\n## Usage\n\n```shell\nros2 launch piper_bringup piper.launch.py\n```\n\n```shell\nros2 action send_goal /say audio_common_msgs/action/TTS \"{'text': 'Hello World from ros 2'}\"\n```\n\n### Spanish Example\n\n```shell\nros2 launch piper_bringup piper_spanish.launch.py\n```\n\n```shell\nros2 action send_goal /say audio_common_msgs/action/TTS \"{'text': 'Hola Mundo desde ros 2'}\"\n```\n\n## Params\n\n### General Parameters\n\n| Param      | Type     | Default | Description                                          |\n| ---------- | -------- | ------- | ---------------------------------------------------- |\n| `chunk`    | `int32`  | `512`   | Chunk size in samples for audio publication.         |\n| `frame_id` | `string` | `\"\"`    | Frame ID attached to published AudioStamped headers. |\n\n### Model Parameters (`model.*`)\n\n| Param                   | Type     | Default                                            | Description                                                                                            |\n| ----------------------- | -------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |\n| `model.repo`            | `string` | `\"rhasspy/piper-voices\"`                           | HuggingFace repository for model download.                                                             |\n| `model.filename`        | `string` | `\"en/en_US/lessac/low/en_US-lessac-low.onnx\"`      | Filename of the model in the repository.                                                               |\n| `model.path`            | `string` | `\"\"`                                               | Local path to the voice model file. If empty, the model is downloaded from `model.repo`.               |\n| `model.config_repo`     | `string` | `\"rhasspy/piper-voices\"`                           | HuggingFace repository for the model config download.                                                  |\n| `model.config_filename` | `string` | `\"en/en_US/lessac/low/en_US-lessac-low.onnx.json\"` | Filename of the model config in the repository.                                                        |\n| `model.config_path`     | `string` | `\"\"`                                               | Local path to the JSON voice config file. If empty, the config is downloaded from `model.config_repo`. |\n\n### Synthesis Parameters (`synthesis.*`)\n\n| Param                                | Type    | Default | Description                                             |\n| ------------------------------------ | ------- | ------- | ------------------------------------------------------- |\n| `synthesis.speaker_id`               | `int32` | `0`     | Numerical speaker ID for multi-speaker voices.          |\n| `synthesis.noise_scale`              | `float` | `0.667` | Amount of noise added during audio generation.          |\n| `synthesis.length_scale`             | `float` | `1.0`   | Speed of speaking (1 = normal, \u003c 1 faster, \u003e 1 slower). |\n| `synthesis.noise_w_scale`            | `float` | `0.8`   | Variation in phoneme lengths during synthesis.          |\n| `synthesis.sentence_silence_seconds` | `float` | `0.2`   | Seconds of silence inserted between sentences.          |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgonzs13%2Fpiper_ros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmgonzs13%2Fpiper_ros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgonzs13%2Fpiper_ros/lists"}