{"id":31814366,"url":"https://github.com/neurodevco/pymbrola","last_synced_at":"2026-05-08T00:08:06.628Z","repository":{"id":262245196,"uuid":"877335380","full_name":"NeuroDevCo/pymbrola","owner":"NeuroDevCo","description":"A Python front-end for the MBROLA speech synthesizer.","archived":false,"fork":false,"pushed_at":"2025-08-18T11:35:33.000Z","size":119,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-20T22:45:28.515Z","etag":null,"topics":["audio","audio-processing","audio-synthesis","diphone","diphone-based","mbrola","mbrola-voices"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/mbrola/","language":"Python","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/NeuroDevCo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2024-10-23T13:33:32.000Z","updated_at":"2025-08-18T13:44:49.000Z","dependencies_parsed_at":"2024-11-11T12:21:17.491Z","dependency_job_id":"f7af757a-8ff2-4f83-a923-e5ce8a292e14","html_url":"https://github.com/NeuroDevCo/pymbrola","commit_stats":null,"previous_names":["gongcastro/pymbrola","neurodevco/pymbrola"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/NeuroDevCo/pymbrola","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeuroDevCo%2Fpymbrola","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeuroDevCo%2Fpymbrola/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeuroDevCo%2Fpymbrola/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeuroDevCo%2Fpymbrola/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NeuroDevCo","download_url":"https://codeload.github.com/NeuroDevCo/pymbrola/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NeuroDevCo%2Fpymbrola/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006619,"owners_count":26084148,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["audio","audio-processing","audio-synthesis","diphone","diphone-based","mbrola","mbrola-voices"],"created_at":"2025-10-11T08:28:24.048Z","updated_at":"2026-05-08T00:08:06.621Z","avatar_url":"https://github.com/NeuroDevCo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pymbrola\r\n\r\n[![PyPI - Version](https://img.shields.io/pypi/v/mbrola.svg)](https://pypi.org/project/mbrola)\r\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mbrola.svg)](https://pypi.org/project/mbrola)\r\n\r\n-----\r\n\r\nA Python interface for the [MBROLA](https://github.com/numediart/MBROLA) speech synthesizer, enabling programmatic creation of MBROLA-compatible phoneme files and automated audio synthesis. This module validates phoneme, duration, and pitch sequences, generates `.pho` files, and can call the MBROLA executable to synthesize speech audio from text-like inputs.\r\n\r\n\u003e **References:**\r\n\u003e Dutoit, T., Pagel, V., Pierret, N., Bataille, F., \u0026 Van der Vrecken, O. (1996, October).\r\n\u003e The MBROLA project: Towards a set of high quality speech synthesizers free of use for non commercial purposes.\r\n\u003e In Proceeding of Fourth International Conference on Spoken Language Processing. ICSLP'96 (Vol. 3, pp. 1393-1396). IEEE.\r\n\u003e [https://doi.org/10.1109/ICSLP.1996.607874](https://doi.org/10.1109/ICSLP.1996.607874)\r\n\r\n## Features\r\n\r\n- **Front-end to MBROLA:** Easily create `.pho` files and synthesize audio with Python.\r\n- **Input validation:** Prevents invalid file and phoneme sequence errors.\r\n- **Customizable:** Easily set phonemes, durations, pitch contours, and leading/trailing silences.\r\n- **Cross-platform (Linux/WSL):** Automatically detects and adapts to Linux or Windows Subsystem for Linux environments.\r\n\r\n## Requirements\r\n\r\n- Python 3.8+\r\n- [MBROLA binary](https://github.com/numediart/MBROLA) installed and available in your system path, or via WSL for Windows users. To install MBROLA in your UBUNTU or WSL instance, run the [mbrola/install.sh] script. A [Docker image](https://hub.docker.com/repository/docker/gongcastro/mbrola/general) of Ubuntu 22.04 with a ready-to-go installation of MBROLA is available, for convenience.\r\n- MBROLA voices (e.g., `it4`) must be installed at `/usr/share/mbrola/\u003cvoice\u003e/\u003cvoice\u003e`.\r\n\r\n## Installation\r\n\r\nMBROLA is currently available only on Linux-based systems like Ubuntu, or on Windows via the [Windows Susbsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). Install MBROLA in your machine following the instructions in the [MBROLA repository](https://github.com/numediart/MBROLA). If you are using WSL, install MBROLA in WSL. After this, you should be ready to install **pymbrola** using pip.\r\n\r\n```console\r\npip install mbrola\r\n```\r\n\r\n## Usage\r\n\r\n### Synthesize a Word\r\n\r\n```python\r\nimport mbrola\r\n\r\n# Create an MBROLA object\r\ncaffe = MBROLA(\r\n    word=\"caffè\",\r\n    phon=[\"k\", \"a\", \"f\", \"f\", \"E1\"],\r\n    durations=100,  # or [100, 120, 100, 110]\r\n    pitch=[100, [200, 50, 200], 100, 100, 200]\r\n)\r\n\r\n# Display phoneme sequence\r\nprint(caffe)\r\n\r\n# Export PHO file\r\ncaffe.export_pho(\"caffe.pho\")\r\n\r\n# Synthesize and save audio (WAV file)\r\ncaffe.make_sound(\"caffe.wav\", voice=\"it4\")\r\n```\r\n\r\nThe module uses the MBROLA command line tool under the hood. Ensure MBROLA is installed and available in your system path, or WSL if on Windows.\r\n\r\n\r\n## Troubleshooting\r\n\r\n- Ensure MBROLA and the required voices are installed and available at `/usr/share/mbrola/\u003cvoice\u003e/\u003cvoice\u003e`.\r\n- If you encounter an error about platform support, make sure you are running on Linux or WSL.\r\n- Write an [issue](https://github.com/NeuroDevCo/pymbrola/issues), I'll look into it ASAP.\r\n\r\n## License\r\n\r\n`pymbrola` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneurodevco%2Fpymbrola","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneurodevco%2Fpymbrola","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneurodevco%2Fpymbrola/lists"}