什么是TTS
????????TTS 是 Text-to-Speech 的縮寫,中文稱為“文本到語音”。它是一種將書面文本轉換為自然聽起來的語音的技術。TTS 技術廣泛應用于各種場景,如智能助手、語音合成、電子閱讀器等。
????????TTS 技術通過機械的、電子的方法產生人造語音。它隸屬于語音合成,是將計算機生成的或外部輸入的文字信息轉變為可以聽得懂的、流利的漢語口語輸出的技術。TTS 技術可以方便地為視力障礙人士閱讀文本,為智能設備提供人性化的交互方式等。
????????常見的 TTS 技術實現方式有拼接合成、參數合成和端到端合成等。其中,拼接合成是將多個預錄制的語音片段拼接成完整的語音;參數合成是通過調整語音參數生成自然音色的語音;端到端合成則是直接將文本轉換為語音,無需中間環節。
常用的TTS工具
微軟的tts工具,由于非常真實,現在很多營銷號都在使用
文本轉語音 – 真實 AI 語音生成器 | Microsoft Azure
Google 文字轉語音:https://texttospeech.google.com/
Amazon Polly:https://aws.amazon.com/polly/
Adobe Acrobat:https://www.adobe.com/products/acrobat.html
Balabolka:https://www.balabolka.com/
Natural Reader:https://www.naturalreaders.com/
Python實現文字轉語音
edge-tts介紹
edge-tts 是一個 Python 庫,它基于微軟的 Azure Cognitive Services 實現了文本到語音轉換(TTS)的功能。這個庫提供了一個簡單的 API,可以將文本轉換為語音,并且支持多種語言和聲音。edge-tts 繼承了 Azure 的文本轉語音功能,但它是免費使用的,這讓用戶能夠方便地在本地進行文本到語音的轉換。
安裝
使用 edge-tts 需要先安裝這個庫,可以通過 pip 命令來安裝:
pip install edge-tts
安裝完成后,可以通過命令行或者 Python 代碼來使用 edge-tts。例如,通過命令行,用戶可以輸入以下命令來將文本轉換為語音:
edge-tts --text "你好,世界" --voice zh-CN-XiaoyiNeural --write-media output.mp3
其中 --voice參數是選擇具體的語音,我們可以用以下命令查看具體有哪些語音
edge-tts --list-voices
Name: af-ZA-AdriNeural Gender: Female
........
........
........
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
我們查看output.mp3就可以很清楚地聽到一個小女孩的聲音,同時在命令行輸出了字幕:
WEBVTT00:00:00.100 --> 00:00:01.550
你好 世界
我們可以把這些字幕輸入到視頻剪輯文件中,就可以自動添加字幕了。
在python中使用
# coding = utf-8
import asyncioimport edge_ttssentence = r'這是一個句子'
voice = 'zh-CN-XiaoxiaoNeural'async def convert_to_mp3(text, rate, volume):tts = edge_tts.Communicate(text=text, voice=voice, rate=rate, volume=volume)await tts.save('output.mp3')asyncio.run(convert_to_mp3(sentence, '+10%', '+50%'))
????????這段代碼會創建一個 EdgeTTS 對象,將文本 “這是一個句子” 轉換成語音,并使用中文的語音,最后將輸出的音頻文件保存為 output.mp3。
????????edge-tts 還提供了許多其他的選項,例如可以通過 --rate 和 --volume 選項來調整語速和音量,或者通過 --list-voices 選項來查看可用的語音列表。
總之,edge-tts 是一個方便、免費且功能強大的 Python 庫,可以幫助用戶實現文本到語音的轉換。