{"data":{"slug":"netease-youdao-emotivoice","name":"EmotiVoice","tagline":"A Multi-Voice and Prompt-Controlled TTS Engine","github_url":"https://github.com/netease-youdao/EmotiVoice","owner":"netease-youdao","repo":"EmotiVoice","owner_avatar_url":"https://avatars.githubusercontent.com/u/3909232?v=4","primary_language":"Python","stars":8528,"forks":756,"topics":["ai","deep-learning","emotion","emotivoice","multi-speaker","prompt","python","pytorch","speech","speech-synthesis","style","text-to-speech","tts"],"archived":false,"github_pushed_at":"2026-09-03T08:30:35+00:00","maintenance_label":"Active","stars_delta_30d":27,"url":"https://www.graphcanon.com/tools/netease-youdao-emotivoice","markdown_url":"https://www.graphcanon.com/tools/netease-youdao-emotivoice.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/netease-youdao-emotivoice","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=netease-youdao-emotivoice","description":"EmotiVoice 😊: a Multi-Voice and Prompt-Controlled TTS Engine","homepage_url":null,"license":"Apache-2.0","open_issues":137,"watchers":72,"ai_summary":"EmotiVoice is an emotion-driven text-to-speech engine that supports multi-speaker capabilities and prompt control for various speech synthesis styles.","readme_excerpt":"### EmotiVoice Docker image\n\nThe easiest way to try EmotiVoice is by running the docker image. You need a machine with a NVidia GPU. If you have not done so, set up NVidia container toolkit by following the instructions for [Linux](https://www.server-world.info/en/note?os=Ubuntu_22.04&p=nvidia&f=2) or [Windows WSL2](https://github.com/nyp-sit/it3103/blob/main/nvidia-docker-wsl2.md). Then EmotiVoice can be run with,\n\n```sh\ndocker run -dp 127.0.0.1:8501:8501 syq163/emoti-voice:latest\n```\nThe Docker image was updated on January 4th, 2024. If you have an older version, please update it by running the following commands:\n```sh\ndocker pull syq163/emoti-voice:latest\ndocker run -dp 127.0.0.1:8501:8501 -p 127.0.0.1:8000:8000 syq163/emoti-voice:latest\n```\nNow open your browser and navigate to http://localhost:8501 to start using EmotiVoice's powerful TTS capabilities.\n\nStarting from this version, the 'OpenAI-compatible-TTS API' is now accessible via http://localhost:8000/.\n\n---\n\n### Full installation\n\n```sh\nconda create -n EmotiVoice python=3.8 -y\nconda activate EmotiVoice\npip install torch torchaudio\npip install numpy numba scipy transformers soundfile yacs g2p_en jieba pypinyin pypinyin_dict\npython -m nltk.downloader \"averaged_perceptron_tagger_eng\"\n```\n\n---\n\n## License\n\nEmotiVoice is provided under the Apache-2.0 License - see the [LICENSE](./LICENSE) file for details.\n\nThe interactive page is provided under the [User Agreement](./EmotiVoice_UserAgreement_易魔声用户协议.pdf) file.","github_created_at":"2023-11-08T10:15:27+00:00","created_at":"2026-07-11T12:05:30.710249+00:00","updated_at":"2026-09-20T07:04:37.797456+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":"ai","name":"ai"},{"slug":"deep-learning","name":"deep-learning"},{"slug":"emotion","name":"emotion"},{"slug":"multispeaker","name":"multispeaker"},{"slug":"prompt","name":"prompt"},{"slug":"python","name":"python"},{"slug":"pytorch","name":"pytorch"},{"slug":"speech-synthesis","name":"speech-synthesis"}],"trust":{"provenance":{"is_fork":false,"github_id":716023793,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T07:04:35.319Z","maintenance":{"label":"Active","score":82,"methodology":"github_public_v1","releases_90d":0,"days_since_push":16,"last_release_at":"2023-12-28T10:27:44Z","stars_delta_30d":27,"open_issues_delta_30d":0},"security_summary":{"status":"ok","scanner":"osv@v1","low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:05:36.859Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-20T07:04:36.373Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-09-20T07:04:36.373Z","managed_saas":false},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-09-20T07:04:36.373Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-09-20T07:04:36.373Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-09-20T07:04:36.373Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["When you need a TTS solution capable of handling multiple speaker voices in a single project","If your application requires the ability to adjust the emotional tone of synthesized speech based on prompts"],"when_not_to_use":["For setups without access to an NVidia GPU, as EmotiVoice requires one for running its Docker image","When deploying applications that have strict latency requirements and cannot accommodate the startup time of a Docker container or the processing demands of GPU computations"],"source":"enrich:decision_facts","observed_at":"2026-07-17T00:15:03.729Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"EmotiVoice is an emotion-driven text-to-speech engine that emphasizes voice diversity and prompt control, allowing users to generate speech with varied emotions and speaking styles."}]}}