Text-to-Speech Revolution: Bring Your Words to Life with Personalized AI Voices
Tired of Boring Read-Alouds? Clone Your Voice and Make Your Texts Sing with Edge and RVC
Tired of robots reading your blog posts in monotonous tones? Ever dream of your articles narrated by Morgan Freeman, Michelle Obama, or even yourself? Welcome to the future of text-to-speech, where the voice is yours to control. Today, I'll introduce the integration of Microsoft Edge-TTS and RVC (Retrieval-based Voice Conversion), transforming your written words into a captivating audio experience.
Text to Speech
Reference:
We will use Microsoft Edge's online text-to-speech service to convert text to speech.
- To install it, run the following command
pip install edge-tts
- Basic command
edge-tts --text "Hello, world!" --write-media hello.mp3
- Edge-tts parameter table
-h, --help | show this help message and exit |
---|---|
-t TEXT, --text TEXT | what TTS will say |
-f FILE, --file FILE | same as --text but read from file |
-v VOICE, --voice VOICE | voice for TTS. Default: en-US-AriaNeural |
-l, --list-voices | lists available voices and exits |
--rate RATE | set TTS rate. Default +0%. |
--volume VOLUME | set TTS volume. Default +0%. |
--words-in-cue WORDS_IN_CUE | number of words in a subtitle cue. Default: 10. |
--write-media WRITE_MEDIA | send media output to file instead of stdout |
--write-subtitles WRITE_SUBTITLES | send subtitle output to provided file instead of stderr |
--proxy PROXY | use a proxy for TTS and voice list. |
-
Edge-tts voice list
Check Appendix of this article -
Example of advanced usage
edge-tts \
--voice en-US-RogerNeural \
--text "Hello world!" \
--write-media hello.mp3 \
--write-subtitles hello.vtt \
--rate=-50% \
--volume=-50% \
--pitch=-50Hz
The audio file will be saved in the current directory.
RVC
RVC Models, or Retrieval-based Voice Conversion, is a cutting-edge technology that's all about transforming voices. It uses advanced techniques to take the unique qualities of one voice and apply them to another.
The step-by-step guide can be found in my previous posts:
Demo
Text input, en-US-BrianNeural + custom voice model |
---|
Hi! This voice message is generated by edge text-to-speech, and applied by custom retrieval based voice conversion. |
Appendix: Voice List
edge-tts --list-voices
Voice List |
---|
Name: af-ZA-AdriNeural |
Gender: Female |
Name: af-ZA-WillemNeural |
Gender: Male |
Name: am-ET-AmehaNeural |
Gender: Male |
Name: am-ET-MekdesNeural |
Gender: Female |
Name: ar-AE-FatimaNeural |
Gender: Female |
Name: ar-AE-HamdanNeural |
Gender: Male |
Name: ar-BH-AliNeural |
Gender: Male |
Name: ar-BH-LailaNeural |
Gender: Female |
Name: ar-DZ-AminaNeural |
Gender: Female |
Name: ar-DZ-IsmaelNeural |
Gender: Male |
Name: ar-EG-SalmaNeural |
Gender: Female |
Name: ar-EG-ShakirNeural |
Gender: Male |
Name: ar-IQ-BasselNeural |
Gender: Male |
Name: ar-IQ-RanaNeural |
Gender: Female |
Name: ar-JO-SanaNeural |
Gender: Female |
Name: ar-JO-TaimNeural |
Gender: Male |
Name: ar-KW-FahedNeural |
Gender: Male |
Name: ar-KW-NouraNeural |
Gender: Female |
Name: ar-LB-LaylaNeural |
Gender: Female |
Name: ar-LB-RamiNeural |
Gender: Male |
Name: ar-LY-ImanNeural |
Gender: Female |
Name: ar-LY-OmarNeural |
Gender: Male |
Name: ar-MA-JamalNeural |
Gender: Male |
Name: ar-MA-MounaNeural |
Gender: Female |
Name: ar-OM-AbdullahNeural |
Gender: Male |
Name: ar-OM-AyshaNeural |
Gender: Female |
Name: ar-QA-AmalNeural |
Gender: Female |
Name: ar-QA-MoazNeural |
Gender: Male |
Name: ar-SA-HamedNeural |
Gender: Male |
Name: ar-SA-ZariyahNeural |
Gender: Female |
Name: ar-SY-AmanyNeural |
Gender: Female |
Name: ar-SY-LaithNeural |
Gender: Male |
Name: ar-TN-HediNeural |
Gender: Male |
Name: ar-TN-ReemNeural |
Gender: Female |
Name: ar-YE-MaryamNeural |
Gender: Female |
Name: ar-YE-SalehNeural |
Gender: Male |
Name: az-AZ-BabekNeural |
Gender: Male |
Name: az-AZ-BanuNeural |
Gender: Female |
Name: bg-BG-BorislavNeural |
Gender: Male |
Name: bg-BG-KalinaNeural |
Gender: Female |
Name: bn-BD-NabanitaNeural |
Gender: Female |
Name: bn-BD-PradeepNeural |
Gender: Male |
Name: bn-IN-BashkarNeural |
Gender: Male |
Name: bn-IN-TanishaaNeural |
Gender: Female |
Name: bs-BA-GoranNeural |
Gender: Male |
Name: bs-BA-VesnaNeural |
Gender: Female |
Name: ca-ES-EnricNeural |
Gender: Male |
Name: ca-ES-JoanaNeural |
Gender: Female |
Name: cs-CZ-AntoninNeural |
Gender: Male |
Name: cs-CZ-VlastaNeural |
Gender: Female |
Name: cy-GB-AledNeural |
Gender: Male |
Name: cy-GB-NiaNeural |
Gender: Female |
Name: da-DK-ChristelNeural |
Gender: Female |
Name: da-DK-JeppeNeural |
Gender: Male |
Name: de-AT-IngridNeural |
Gender: Female |
Name: de-AT-JonasNeural |
Gender: Male |
Name: de-CH-JanNeural |
Gender: Male |
Name: de-CH-LeniNeural |
Gender: Female |
Name: de-DE-AmalaNeural |
Gender: Female |
Name: de-DE-ConradNeural |
Gender: Male |
Name: de-DE-FlorianMultilingualNeural |
Gender: Male |
Name: de-DE-KatjaNeural |
Gender: Female |
Name: de-DE-KillianNeural |
Gender: Male |
Name: de-DE-SeraphinaMultilingualNeural |
Gender: Female |
Name: el-GR-AthinaNeural |
Gender: Female |
Name: el-GR-NestorasNeural |
Gender: Male |
Name: en-AU-NatashaNeural |
Gender: Female |
Name: en-AU-WilliamNeural |
Gender: Male |
Name: en-CA-ClaraNeural |
Gender: Female |
Name: en-CA-LiamNeural |
Gender: Male |
Name: en-GB-LibbyNeural |
Gender: Female |
Name: en-GB-MaisieNeural |
Gender: Female |
Name: en-GB-RyanNeural |
Gender: Male |
Name: en-GB-SoniaNeural |
Gender: Female |
Name: en-GB-ThomasNeural |
Gender: Male |
Name: en-HK-SamNeural |
Gender: Male |
Name: en-HK-YanNeural |
Gender: Female |
Name: en-IE-ConnorNeural |
Gender: Male |
Name: en-IE-EmilyNeural |
Gender: Female |
Name: en-IN-NeerjaExpressiveNeural |
Gender: Female |
Name: en-IN-NeerjaNeural |
Gender: Female |
Name: en-IN-PrabhatNeural |
Gender: Male |
Name: en-KE-AsiliaNeural |
Gender: Female |
Name: en-KE-ChilembaNeural |
Gender: Male |
Name: en-NG-AbeoNeural |
Gender: Male |
Name: en-NG-EzinneNeural |
Gender: Female |
Name: en-NZ-MitchellNeural |
Gender: Male |
Name: en-NZ-MollyNeural |
Gender: Female |
Name: en-PH-JamesNeural |
Gender: Male |
Name: en-PH-RosaNeural |
Gender: Female |
Name: en-SG-LunaNeural |
Gender: Female |
Name: en-SG-WayneNeural |
Gender: Male |
Name: en-TZ-ElimuNeural |
Gender: Male |
Name: en-TZ-ImaniNeural |
Gender: Female |
Name: en-US-AnaNeural |
Gender: Female |
Name: en-US-AndrewNeural |
Gender: Male |
Name: en-US-AriaNeural |
Gender: Female |
Name: en-US-AvaNeural |
Gender: Female |
Name: en-US-BrianNeural |
Gender: Male |
Name: en-US-ChristopherNeural |
Gender: Male |
Name: en-US-EmmaNeural |
Gender: Female |
Name: en-US-EricNeural |
Gender: Male |
Name: en-US-GuyNeural |
Gender: Male |
Name: en-US-JennyNeural |
Gender: Female |
Name: en-US-MichelleNeural |
Gender: Female |
Name: en-US-RogerNeural |
Gender: Male |
Name: en-US-SteffanNeural |
Gender: Male |
Name: en-ZA-LeahNeural |
Gender: Female |
Name: en-ZA-LukeNeural |
Gender: Male |
Name: es-AR-ElenaNeural |
Gender: Female |
Name: es-AR-TomasNeural |
Gender: Male |
Name: es-BO-MarceloNeural |
Gender: Male |
Name: es-BO-SofiaNeural |
Gender: Female |
Name: es-CL-CatalinaNeural |
Gender: Female |
Name: es-CL-LorenzoNeural |
Gender: Male |
Name: es-CO-GonzaloNeural |
Gender: Male |
Name: es-CO-SalomeNeural |
Gender: Female |
Name: es-CR-JuanNeural |
Gender: Male |
Name: es-CR-MariaNeural |
Gender: Female |
Name: es-CU-BelkysNeural |
Gender: Female |
Name: es-CU-ManuelNeural |
Gender: Male |
Name: es-DO-EmilioNeural |
Gender: Male |
Name: es-DO-RamonaNeural |
Gender: Female |
Name: es-EC-AndreaNeural |
Gender: Female |
Name: es-EC-LuisNeural |
Gender: Male |
Name: es-ES-AlvaroNeural |
Gender: Male |
Name: es-ES-ElviraNeural |
Gender: Female |
Name: es-ES-XimenaNeural |
Gender: Female |
Name: es-GQ-JavierNeural |
Gender: Male |
Name: es-GQ-TeresaNeural |
Gender: Female |
Name: es-GT-AndresNeural |
Gender: Male |
Name: es-GT-MartaNeural |
Gender: Female |
Name: es-HN-CarlosNeural |
Gender: Male |
Name: es-HN-KarlaNeural |
Gender: Female |
Name: es-MX-DaliaNeural |
Gender: Female |
Name: es-MX-JorgeNeural |
Gender: Male |
Name: es-NI-FedericoNeural |
Gender: Male |
Name: es-NI-YolandaNeural |
Gender: Female |
Name: es-PA-MargaritaNeural |
Gender: Female |
Name: es-PA-RobertoNeural |
Gender: Male |
Name: es-PE-AlexNeural |
Gender: Male |
Name: es-PE-CamilaNeural |
Gender: Female |
Name: es-PR-KarinaNeural |
Gender: Female |
Name: es-PR-VictorNeural |
Gender: Male |
Name: es-PY-MarioNeural |
Gender: Male |
Name: es-PY-TaniaNeural |
Gender: Female |
Name: es-SV-LorenaNeural |
Gender: Female |
Name: es-SV-RodrigoNeural |
Gender: Male |
Name: es-US-AlonsoNeural |
Gender: Male |
Name: es-US-PalomaNeural |
Gender: Female |
Name: es-UY-MateoNeural |
Gender: Male |
Name: es-UY-ValentinaNeural |
Gender: Female |
Name: es-VE-PaolaNeural |
Gender: Female |
Name: es-VE-SebastianNeural |
Gender: Male |
Name: et-EE-AnuNeural |
Gender: Female |
Name: et-EE-KertNeural |
Gender: Male |
Name: fa-IR-DilaraNeural |
Gender: Female |
Name: fa-IR-FaridNeural |
Gender: Male |
Name: fi-FI-HarriNeural |
Gender: Male |
Name: fi-FI-NooraNeural |
Gender: Female |
Name: fil-PH-AngeloNeural |
Gender: Male |
Name: fil-PH-BlessicaNeural |
Gender: Female |
Name: fr-BE-CharlineNeural |
Gender: Female |
Name: fr-BE-GerardNeural |
Gender: Male |
Name: fr-CA-AntoineNeural |
Gender: Male |
Name: fr-CA-JeanNeural |
Gender: Male |
Name: fr-CA-SylvieNeural |
Gender: Female |
Name: fr-CA-ThierryNeural |
Gender: Male |
Name: fr-CH-ArianeNeural |
Gender: Female |
Name: fr-CH-FabriceNeural |
Gender: Male |
Name: fr-FR-DeniseNeural |
Gender: Female |
Name: fr-FR-EloiseNeural |
Gender: Female |
Name: fr-FR-HenriNeural |
Gender: Male |
Name: fr-FR-RemyMultilingualNeural |
Gender: Male |
Name: fr-FR-VivienneMultilingualNeural |
Gender: Female |
Name: ga-IE-ColmNeural |
Gender: Male |
Name: ga-IE-OrlaNeural |
Gender: Female |
Name: gl-ES-RoiNeural |
Gender: Male |
Name: gl-ES-SabelaNeural |
Gender: Female |
Name: gu-IN-DhwaniNeural |
Gender: Female |
Name: gu-IN-NiranjanNeural |
Gender: Male |
Name: he-IL-AvriNeural |
Gender: Male |
Name: he-IL-HilaNeural |
Gender: Female |
Name: hi-IN-MadhurNeural |
Gender: Male |
Name: hi-IN-SwaraNeural |
Gender: Female |
Name: hr-HR-GabrijelaNeural |
Gender: Female |
Name: hr-HR-SreckoNeural |
Gender: Male |
Name: hu-HU-NoemiNeural |
Gender: Female |
Name: hu-HU-TamasNeural |
Gender: Male |
Name: id-ID-ArdiNeural |
Gender: Male |
Name: id-ID-GadisNeural |
Gender: Female |
Name: is-IS-GudrunNeural |
Gender: Female |
Name: is-IS-GunnarNeural |
Gender: Male |
Name: it-IT-DiegoNeural |
Gender: Male |
Name: it-IT-ElsaNeural |
Gender: Female |
Name: it-IT-GiuseppeNeural |
Gender: Male |
Name: it-IT-IsabellaNeural |
Gender: Female |
Name: ja-JP-KeitaNeural |
Gender: Male |
Name: ja-JP-NanamiNeural |
Gender: Female |
Name: jv-ID-DimasNeural |
Gender: Male |
Name: jv-ID-SitiNeural |
Gender: Female |
Name: ka-GE-EkaNeural |
Gender: Female |
Name: ka-GE-GiorgiNeural |
Gender: Male |
Name: kk-KZ-AigulNeural |
Gender: Female |
Name: kk-KZ-DauletNeural |
Gender: Male |
Name: km-KH-PisethNeural |
Gender: Male |
Name: km-KH-SreymomNeural |
Gender: Female |
Name: kn-IN-GaganNeural |
Gender: Male |
Name: kn-IN-SapnaNeural |
Gender: Female |
Name: ko-KR-HyunsuNeural |
Gender: Male |
Name: ko-KR-InJoonNeural |
Gender: Male |
Name: ko-KR-SunHiNeural |
Gender: Female |
Name: lo-LA-ChanthavongNeural |
Gender: Male |
Name: lo-LA-KeomanyNeural |
Gender: Female |
Name: lt-LT-LeonasNeural |
Gender: Male |
Name: lt-LT-OnaNeural |
Gender: Female |
Name: lv-LV-EveritaNeural |
Gender: Female |
Name: lv-LV-NilsNeural |
Gender: Male |
Name: mk-MK-AleksandarNeural |
Gender: Male |
Name: mk-MK-MarijaNeural |
Gender: Female |
Name: ml-IN-MidhunNeural |
Gender: Male |
Name: ml-IN-SobhanaNeural |
Gender: Female |
Name: mn-MN-BataaNeural |
Gender: Male |
Name: mn-MN-YesuiNeural |
Gender: Female |
Name: mr-IN-AarohiNeural |
Gender: Female |
Name: mr-IN-ManoharNeural |
Gender: Male |
Name: ms-MY-OsmanNeural |
Gender: Male |
Name: ms-MY-YasminNeural |
Gender: Female |
Name: mt-MT-GraceNeural |
Gender: Female |
Name: mt-MT-JosephNeural |
Gender: Male |
Name: my-MM-NilarNeural |
Gender: Female |
Name: my-MM-ThihaNeural |
Gender: Male |
Name: nb-NO-FinnNeural |
Gender: Male |
Name: nb-NO-PernilleNeural |
Gender: Female |
Name: ne-NP-HemkalaNeural |
Gender: Female |
Name: ne-NP-SagarNeural |
Gender: Male |
Name: nl-BE-ArnaudNeural |
Gender: Male |
Name: nl-BE-DenaNeural |
Gender: Female |
Name: nl-NL-ColetteNeural |
Gender: Female |
Name: nl-NL-FennaNeural |
Gender: Female |
Name: nl-NL-MaartenNeural |
Gender: Male |
Name: pl-PL-MarekNeural |
Gender: Male |
Name: pl-PL-ZofiaNeural |
Gender: Female |
Name: ps-AF-GulNawazNeural |
Gender: Male |
Name: ps-AF-LatifaNeural |
Gender: Female |
Name: pt-BR-AntonioNeural |
Gender: Male |
Name: pt-BR-FranciscaNeural |
Gender: Female |
Name: pt-BR-ThalitaNeural |
Gender: Female |
Name: pt-PT-DuarteNeural |
Gender: Male |
Name: pt-PT-RaquelNeural |
Gender: Female |
Name: ro-RO-AlinaNeural |
Gender: Female |
Name: ro-RO-EmilNeural |
Gender: Male |
Name: ru-RU-DmitryNeural |
Gender: Male |
Name: ru-RU-SvetlanaNeural |
Gender: Female |
Name: si-LK-SameeraNeural |
Gender: Male |
Name: si-LK-ThiliniNeural |
Gender: Female |
Name: sk-SK-LukasNeural |
Gender: Male |
Name: sk-SK-ViktoriaNeural |
Gender: Female |
Name: sl-SI-PetraNeural |
Gender: Female |
Name: sl-SI-RokNeural |
Gender: Male |
Name: so-SO-MuuseNeural |
Gender: Male |
Name: so-SO-UbaxNeural |
Gender: Female |
Name: sq-AL-AnilaNeural |
Gender: Female |
Name: sq-AL-IlirNeural |
Gender: Male |
Name: sr-RS-NicholasNeural |
Gender: Male |
Name: sr-RS-SophieNeural |
Gender: Female |
Name: su-ID-JajangNeural |
Gender: Male |
Name: su-ID-TutiNeural |
Gender: Female |
Name: sv-SE-MattiasNeural |
Gender: Male |
Name: sv-SE-SofieNeural |
Gender: Female |
Name: sw-KE-RafikiNeural |
Gender: Male |
Name: sw-KE-ZuriNeural |
Gender: Female |
Name: sw-TZ-DaudiNeural |
Gender: Male |
Name: sw-TZ-RehemaNeural |
Gender: Female |
Name: ta-IN-PallaviNeural |
Gender: Female |
Name: ta-IN-ValluvarNeural |
Gender: Male |
Name: ta-LK-KumarNeural |
Gender: Male |
Name: ta-LK-SaranyaNeural |
Gender: Female |
Name: ta-MY-KaniNeural |
Gender: Female |
Name: ta-MY-SuryaNeural |
Gender: Male |
Name: ta-SG-AnbuNeural |
Gender: Male |
Name: ta-SG-VenbaNeural |
Gender: Female |
Name: te-IN-MohanNeural |
Gender: Male |
Name: te-IN-ShrutiNeural |
Gender: Female |
Name: th-TH-NiwatNeural |
Gender: Male |
Name: th-TH-PremwadeeNeural |
Gender: Female |
Name: tr-TR-AhmetNeural |
Gender: Male |
Name: tr-TR-EmelNeural |
Gender: Female |
Name: uk-UA-OstapNeural |
Gender: Male |
Name: uk-UA-PolinaNeural |
Gender: Female |
Name: ur-IN-GulNeural |
Gender: Female |
Name: ur-IN-SalmanNeural |
Gender: Male |
Name: ur-PK-AsadNeural |
Gender: Male |
Name: ur-PK-UzmaNeural |
Gender: Female |
Name: uz-UZ-MadinaNeural |
Gender: Female |
Name: uz-UZ-SardorNeural |
Gender: Male |
Name: vi-VN-HoaiMyNeural |
Gender: Female |
Name: vi-VN-NamMinhNeural |
Gender: Male |
Name: zh-CN-XiaoxiaoNeural |
Gender: Female |
Name: zh-CN-XiaoyiNeural |
Gender: Female |
Name: zh-CN-YunjianNeural |
Gender: Male |
Name: zh-CN-YunxiNeural |
Gender: Male |
Name: zh-CN-YunxiaNeural |
Gender: Male |
Name: zh-CN-YunyangNeural |
Gender: Male |
Name: zh-CN-liaoning-XiaobeiNeural |
Gender: Female |
Name: zh-CN-shaanxi-XiaoniNeural |
Gender: Female |
Name: zh-HK-HiuGaaiNeural |
Gender: Female |
Name: zh-HK-HiuMaanNeural |
Gender: Female |
Name: zh-HK-WanLungNeural |
Gender: Male |
Name: zh-TW-HsiaoChenNeural |
Gender: Female |
Name: zh-TW-HsiaoYuNeural |
Gender: Female |
Name: zh-TW-YunJheNeural |
Gender: Male |
Name: zu-ZA-ThandoNeural |
Gender: Female |
Name: zu-ZA-ThembaNeural |
Gender: Male |
Copyright statement: Unless otherwise stated, all articles on this blog adopt the CC BY-NC-SA 4.0 license agreement. For non-commercial reprints and citations, please indicate the author: Henry, and original article URL. For commercial reprints, please contact the author for authorization.