python騰訊語音合成實(shí)現(xiàn)過程解析
一、騰訊語音合成介紹
騰訊云語音合成技術(shù)(TTS)可以將任意文本轉(zhuǎn)化為語音,實(shí)現(xiàn)讓機(jī)器和應(yīng)用張口說話。 騰訊TTS技術(shù)可以應(yīng)用到很多場景,比如,移動(dòng)APP語音播報(bào)新聞;智能設(shè)備語音提醒;依靠網(wǎng)上現(xiàn)有節(jié)目或少量錄音,快速合成明星語音,降低邀約成本;支持車載導(dǎo)航語音合成的個(gè)性化語音播報(bào)。(廢話一大堆)。。。
二、騰訊語音合成python SDK文檔
安裝 Python SDK 前,先獲取安全憑證。在第一次使用云 API 之前,用戶首先需要在騰訊云控制臺(tái)上申請(qǐng)安全憑證,安全憑證包括 SecretID 和 SecretKey, SecretID 是用于標(biāo)識(shí) API 調(diào)用者的身份,SecretKey 是用于加密簽名字符串和服務(wù)器端驗(yàn)證簽名字符串的密鑰。SecretKey 必須嚴(yán)格保管,避免泄露?!?/p>
通過 pip 安裝(推薦)
您可以通過 pip 安裝方式將騰訊云 API Python SDK 安裝到您的項(xiàng)目中,如果您的項(xiàng)目環(huán)境尚未安裝 pip,請(qǐng)?jiān)敿?xì)參見 pip官網(wǎng) 安裝。
通過pip方式安裝請(qǐng)?jiān)诿钚兄袌?zhí)行以下命令:
pip install tencentcloud-sdk-python
請(qǐng)注意,如果同時(shí)有 python2 和 python3 環(huán)境, python3 環(huán)境需要使用 pip3 命令安裝。
三、騰訊語音合成
# !/usr/bin/env python 2 # -*- coding: utf-8 -*- from base64 import b64decode from uuid import uuid4 from tencentcloud.common import credential from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.aai.v20180522.models import TextToVoiceRequest from tencentcloud.aai.v20180522.aai_client import AaiClient try: # 實(shí)例化一個(gè)認(rèn)證對(duì)象,入?yún)⑿枰獋魅腧v訊云賬戶secretId,secretKey cred = credential.Credential("你的secretID", "你的secretKey") # 實(shí)例化要進(jìn)行語音合成請(qǐng)求的client對(duì)象 client = AaiClient(cred, 'ap-shanghai') # 實(shí)例化一個(gè)請(qǐng)求對(duì)象 req = TextToVoiceRequest() # 請(qǐng)求對(duì)象屬性封裝 req.Text = '先帝創(chuàng)業(yè)未半而中道崩殂' # type: str # 要合成語音的文本 req.SessionId = uuid4() # type: int # 一次請(qǐng)求對(duì)應(yīng)一個(gè)SessionId,會(huì)原樣返回,建議傳入類似于uuid的字符串防止重復(fù) req.ModelType = 1 # type: int # 模型類型,默認(rèn)值為1 req.Volume = 5.0 # type: float # 音量大小,范圍:[0,10],分別對(duì)應(yīng)10個(gè)等級(jí)的音量,默認(rèn)為0 req.Speed = 0.6 # type: float # 語速,范圍:[-2,2],分別對(duì)應(yīng)不同語速:0.6倍,0.8倍,1.0倍,1.2倍,1.5倍,默認(rèn)為0 req.ProjectId = 10086 # type: int # 項(xiàng)目id,用戶自定義,默認(rèn)為0 req.VoiceType = 0 # type: int # 音色0:女聲1,親和風(fēng)格(默認(rèn)) 音色1:男聲1,成熟風(fēng)格 音色2:男聲2,成熟風(fēng)格 req.PrimaryLanguage = 1 # type: int # 主語言類型1:中文,最大100個(gè)漢字(標(biāo)點(diǎn)符號(hào)算一個(gè)漢字)語言類型2:英文,最大支持400個(gè)字母(標(biāo)點(diǎn)符號(hào)算一個(gè)字母) req.SampleRate = 16000 # type: int # 音頻采樣率,16000:16k,8000:8k,默認(rèn)16k # 通過client對(duì)象調(diào)用想要訪問的接口,需要傳入請(qǐng)求對(duì)象 rep = client.TextToVoice(req) # rep為響應(yīng)對(duì)象 print(rep) """ { "Audio": "UklGRlR/AABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YSx9AAD+////AQD//wAAAAAAAAIAAQADAAMABgAEAAYABQAGAAUABwAIAAgACQAAE......AAgACAAEAAgADAAIAAwACAAQAAwACAAIAAgADAAMAAgACAAIAAwABAAAAAAAAAAAAAAD/////AAAAAAAA//8AAP///v/9//7//v///////v8AAP///////wAA/////wAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA", "RequestId": "9a7a1615-3e09-4db2-8032-5c6f497f7e6a", "SessionId": "session-1234" } Audio對(duì)應(yīng)的值為經(jīng)過base64編碼, RequestId為返回的唯一請(qǐng)求id, SessionId為發(fā)送請(qǐng)求時(shí)傳入的id即uuid4() """ # content為base64解碼后的二進(jìn)制流 content = b64decode(rep.Audio) # I/O操作 with open('voice.wav', 'wb') as f: f.write(content) except TencentCloudSDKException as e: print(e)
四、騰訊語音合成使用后感受
首先,在代碼層次上講,官方壓根沒有合成示例文檔啊(咆哮ing),全自己摸索的啊(咆哮ing),SDK都開發(fā)出來了,示例代碼給一下能死啊(咆哮ing),怪不得沒人用啊(咆哮ing)!
第二,還是在代碼層次上講,源碼中TextToVoiceRequest()類,在__init__()方法中就不能直接封裝屬性啊(咆哮ing),有些沒有自定制但都是默認(rèn)的直接填上不就行了啊(咆哮ing),懶死你啊,非得一行一行自己加屬性啊(咆哮ing),看到的同學(xué)務(wù)必要修改這個(gè)類的__init__()方法,要不然就像示例代碼中那樣麻煩。
第三,在合成效果上講,聲音難聽爆了有木有,語音文件還得解碼再I/O,吃飽了撐的了啊,還是那句話:怪不得沒人用,百度語音合成效果比你強(qiáng)多了。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 關(guān)于Python調(diào)用百度語音合成SDK實(shí)現(xiàn)文字轉(zhuǎn)音頻的方法
- Python調(diào)用訊飛語音合成API接口來實(shí)現(xiàn)文字轉(zhuǎn)語音
- Python人工智能語音合成實(shí)現(xiàn)案例詳解
- Python語音合成的項(xiàng)目實(shí)戰(zhàn)(PyQt5+pyttsx3)
- 基于Python實(shí)現(xiàn)語音合成小工具
- 基于Python編寫一個(gè)語音合成系統(tǒng)
- Python實(shí)現(xiàn)語音合成功能詳解
- python3實(shí)現(xiàn)語音轉(zhuǎn)文字(語音識(shí)別)和文字轉(zhuǎn)語音(語音合成)
- Python實(shí)現(xiàn)語音識(shí)別和語音合成功能
- Python中edge-tts實(shí)現(xiàn)便捷語音合成
相關(guān)文章
自然語言處理NLP TextRNN實(shí)現(xiàn)情感分類
這篇文章主要為大家介紹了自然語言處理NLP TextRNN實(shí)現(xiàn)情感分類示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04python編程學(xué)習(xí)np.float 被刪除的問題解析
這篇文章主要為大家介紹了python編程學(xué)習(xí)np.float 被刪除的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Python?xpath,JsonPath,bs4的基本使用
這篇文章主要介紹了Python?xpath,JsonPath,bs4的基本使用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-07-07Python?Numpy布爾數(shù)組在數(shù)據(jù)分析中的應(yīng)用小結(jié)
本文深入探討了Python的Numpy庫中的布爾數(shù)組功能,介紹了布爾運(yùn)算、布爾索引的使用方法,并通過示例展示了如何在數(shù)據(jù)分析中利用布爾數(shù)組進(jìn)行數(shù)據(jù)篩選和處理,感興趣的朋友一起看看吧2024-09-09中秋節(jié)老家要貼對(duì)聯(lián)之python無線對(duì)聯(lián)生成器
適逢中秋老家居然有在中秋貼對(duì)聯(lián)的習(xí)俗,于是自己開機(jī)立馬寫了一個(gè)對(duì)聯(lián)生成器,文中給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有參考價(jià)值2021-09-09python中sort sorted reverse reversed函數(shù)的區(qū)別說明
這篇文章主要介紹了python中sort sorted reverse reversed函數(shù)的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python定時(shí)任務(wù)框架APScheduler安裝使用詳解
這篇文章主要介紹了Python定時(shí)任務(wù)框架APScheduler安裝使用詳解,重點(diǎn)介紹如何使用APscheduler實(shí)現(xiàn)python定時(shí)任務(wù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)Python定時(shí)任務(wù)APScheduler相關(guān)知識(shí)感興趣的朋友一起看看吧2022-05-05Python for循環(huán)及基礎(chǔ)用法詳解
這篇文章為大家介紹python for 循環(huán),它常用于遍歷字符串、列表、元組、字典、集合等序列類型,逐個(gè)獲取序列中的各個(gè)元素2019-11-11