{"data":{"slug":"koljab-realtimetts","name":"RealtimeTTS","tagline":"Converts text to speech in realtime","github_url":"https://github.com/KoljaB/RealtimeTTS","owner":"KoljaB","repo":"RealtimeTTS","owner_avatar_url":"https://avatars.githubusercontent.com/u/7604638?v=4","primary_language":"Python","stars":4031,"forks":405,"topics":["python","realtime","speech-synthesis","text-to-speech"],"archived":false,"github_pushed_at":"2026-09-19T23:35:24+00:00","maintenance_label":"Very active","stars_delta_30d":29,"url":"https://www.graphcanon.com/tools/koljab-realtimetts","markdown_url":"https://www.graphcanon.com/tools/koljab-realtimetts.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/koljab-realtimetts","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=koljab-realtimetts","description":"Converts text to speech in realtime","homepage_url":null,"license":"MIT","open_issues":127,"watchers":39,"ai_summary":"RealtimeTTS is a Python-based text-to-speech conversion tool that performs speech synthesis in real-time.","readme_excerpt":"## Install\n\nFor the fastest local smoke test, install the system engine:\n\n```bash\npip install \"realtimetts[system]\"\n```\n\nThe `system` and other traditional engine extras use PyAudio. On Linux, install\nPortAudio headers before those extras:\n\n```bash\nsudo apt-get update\nsudo apt-get install python3-dev portaudio19-dev\n```\n\nOn macOS:\n\n```bash\nbrew install portaudio\n```\n\nThe local `qwen`, `qwen-cpu`, and Inflect extras use PyAudio/PortAudio for\nplayback. Windows has prebuilt PyAudio wheels; on Linux and macOS install\nPortAudio first using the commands above. Use Python 3.11 or 3.12 for the\nQwen workflows. Server-only installations do not need audio-device libraries.\n\nInstall `realtimetts[qwen-server]` (GPU) or `realtimetts[qwen-cpu-server]` (CPU)\nto expose the same native engine through\nan OpenAI-compatible HTTP API. The server provides `/v1/audio/speech`, dynamic\nvoice registration, persistent voice latents, and watchdog-ready request/stall\nmetrics on `/health`; it is headless and does not install PyAudio/PortAudio.\nThe server defaults to loopback (`127.0.0.1`). LAN exposure requires a\ndeliberate `--allow-lan` bind plus a built-in API key, or a trusted reverse\nproxy that terminates TLS and enforces authentication. CORS defaults to\nexplicit localhost origins and rejects wildcard `*`; CORS is not an access\ncontrol boundary. See [the Qwen guide](docs/engines/qwen.md#http-server) for\ndeployment, protocol, licensing, and asset boundaries.\n\nSentence splitting defaults to stream2sentence's `nltk+rule-based` consensus\nmode. The normal install, including `realtimetts[qwen]`, installs\n`stream2sentence[nltk]` but not Stanza or PyTorch. Add Stanza only when wanted:\n\n```bash\npip install \"realtimetts[stanza]\"\n\n---\n\n## License\n\nRealtimeTTS source code is MIT licensed. Engine providers, model weights, voice\ndata, datasets, generated audio, and third-party services can have separate\nterms. Read [LICENSING_ADDENDUM.md](LICENSING_ADDENDUM.md) and the relevant\nprovider or model licenses before commercial use.\n\nFor the native Qwen/Inflect paths, `qwentts.cpp` and `realtimetts-qwen-native` are\nMIT-licensed; Qwen 0.6B Base/tokenizer and Inflect Micro-v2/ONNX are\nApache-2.0. Model weights, voice latents, and reference audio are not bundled,\nand users are responsible for the rights to every voice or recording they\nprovide.\n\nAudio samples derived from the EARS dataset by Meta are licensed under CC BY-NC\n4.0. See the original dataset terms for details.","github_created_at":"2023-08-26T18:52:29+00:00","created_at":"2026-07-11T12:07:32.724734+00:00","updated_at":"2026-09-20T07:07:03.36202+00:00","categories":[{"slug":"speech-audio","name":"Speech & Audio","url":"https://www.graphcanon.com/categories/speech-audio","markdown_url":"https://www.graphcanon.com/categories/speech-audio.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/speech-audio"}],"tags":[{"slug":"python","name":"python"},{"slug":"realtime","name":"realtime"},{"slug":"speech-synthesis","name":"speech-synthesis"},{"slug":"text-to-speech","name":"text-to-speech"}],"trust":{"provenance":{"is_fork":false,"github_id":683496838,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T07:07:01.063Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":7,"days_since_push":0,"last_release_at":"2026-09-20T00:03:02Z","stars_delta_30d":29,"open_issues_delta_30d":2},"security_summary":{"status":"ok","scanner":"osv@v1","low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:07:35.605Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-20T07:07:02.120Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-09-20T07:07:02.120Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-20T07:07:02.120Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Use RealtimeTTS when you need to integrate real-time text-to-speech capabilities into a Python application that requires immediate audio output without delays.","Opt for RealtimeTTS if your project involves live data with varying speech needs, such as real-time translation and feedback systems."],"when_not_to_use":["Avoid using RealtimeTTS in scenarios where pre-recorded or highly customized voice outputs are crucial, given its focus on speed over customization options.","Do not use RealtimeTTS if heavy reliance on external cloud services is a requirement, since it emphasizes local execution for performance."],"source":"enrich:decision_facts","observed_at":"2026-07-16T20:10:13.349Z"},"constraint_facets":null,"decision_summary":[]}}