python騰訊語音合成

一、騰訊語音合成介紹

  騰訊云語音合成技術(TTS)可以將任意文本轉化為語音,實現讓機器和應用張口說話。 騰訊TTS技術可以應用到很多場景,比如,移動APP語音播報新聞;智能設備語音提醒;依靠網上現有節目或少量錄音,快速合成明星語音,降低邀約成本;支持車載導航語音合成的個性化語音播報。(廢話一大堆)。。。

二、騰訊語音合成python SDK文檔

  安裝 Python SDK 前,先獲取安全憑證。在第一次使用云 API 之前,用戶首先需要在騰訊云控制臺上申請安全憑證,安全憑證包括 SecretID 和 SecretKey, SecretID 是用于標識 API 調用者的身份,SecretKey 是用于加密簽名字符串和服務器端驗證簽名字符串的密鑰。SecretKey 必須嚴格保管,避免泄露。 

 通過 pip 安裝(推薦)

    您可以通過 pip 安裝方式將騰訊云 API Python SDK 安裝到您的項目中,如果您的項目環境尚未安裝 pip,請詳細參見?pip官網 安裝。

    通過pip方式安裝請在命令行中執行以下命令:

    pip install tencentcloud-sdk-python

   ? ?請注意,如果同時有 python2 和 python3 環境, python3 環境需要使用 pip3 命令安裝。

三、騰訊語音合成

 1 # !/usr/bin/env python
2
# -*- coding: utf-8 -*- 3 from base64 import b64decode 4 from uuid import uuid4 5 from tencentcloud.common import credential 6 from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException 7 from tencentcloud.aai.v20180522.models import TextToVoiceRequest 8 from tencentcloud.aai.v20180522.aai_client import AaiClient 9 try: 10 # 實例化一個認證對象,入參需要傳入騰訊云賬戶secretId,secretKey 11 cred = credential.Credential("你的secretID", "你的secretKey") 12 # 實例化要進行語音合成請求的client對象 13 client = AaiClient(cred, 'ap-shanghai') 14 # 實例化一個請求對象 15 req = TextToVoiceRequest() 16 # 請求對象屬性封裝 17 req.Text = '先帝創業未半而中道崩殂' # type: str # 要合成語音的文本 18 req.SessionId = uuid4() # type: int # 一次請求對應一個SessionId,會原樣返回,建議傳入類似于uuid的字符串防止重復 19 req.ModelType = 1 # type: int # 模型類型,默認值為1 20 req.Volume = 5.0 # type: float # 音量大小,范圍:[0,10],分別對應10個等級的音量,默認為0 21 req.Speed = 0.6 # type: float # 語速,范圍:[-2,2],分別對應不同語速:0.6倍,0.8倍,1.0倍,1.2倍,1.5倍,默認為0 22 req.ProjectId = 10086 # type: int # 項目id,用戶自定義,默認為0 23 req.VoiceType = 0 # type: int # 音色0:女聲1,親和風格(默認) 音色1:男聲1,成熟風格 音色2:男聲2,成熟風格 24 req.PrimaryLanguage = 1 # type: int # 主語言類型1:中文,最大100個漢字(標點符號算一個漢字)語言類型2:英文,最大支持400個字母(標點符號算一個字母) 25 req.SampleRate = 16000 # type: int # 音頻采樣率,16000:16k,8000:8k,默認16k 26 # 通過client對象調用想要訪問的接口,需要傳入請求對象 27 rep = client.TextToVoice(req) 28 # rep為響應對象 29 print(rep) 30 """ 31 { 32 "Audio": "UklGRlR/AABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YSx9AAD+AQD//wAAAAAAAAIAAQADAAMABgAEAAYABQAGAAUABwAIAAgACQAAE......AAgACAAEAAgADAAIAAwACAAQAAwACAAIAAgADAAMAAgACAAIAAwABAAAAAAAAAAAAAAD/AAAAAAAA//8AAP///v/9//7//v///v8AAP///wAA/wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA", 33 "RequestId": "9a7a1615-3e09-4db2-8032-5c6f497f7e6a", 34 "SessionId": "session-1234" 35 } 36 Audio對應的值為經過base64編碼, 37 RequestId為返回的唯一請求id, 38 SessionId為發送請求時傳入的id即uuid4() 39 """ 40 # content為base64解碼后的二進制流 41 content = b64decode(rep.Audio) 42 # I/O操作 43 with open('voice.wav', 'wb') as f: 44 f.write(content) 45 except TencentCloudSDKException as e: 46 print(e)

四、騰訊語音合成使用后感受

  首先,在代碼層次上講,官方壓根沒有合成示例文檔啊(咆哮ing),全自己摸索的啊(咆哮ing),SDK都開發出來了,示例代碼給一下能死啊(咆哮ing),怪不得沒人用啊(咆哮ing)!

  第二,還是在代碼層次上講,源碼中TextToVoiceRequest()類,在__init__()方法中就不能直接封裝屬性啊(咆哮ing),有些沒有自定制但都是默認的直接填上不就行了啊(咆哮ing),懶死你啊,非得一行一行自己加屬性啊(咆哮ing),看到的同學務必要修改這個類的__init__()方法,要不然就像示例代碼中那樣麻煩。

  第三,在合成效果上講,聲音難聽爆了有木有,語音文件還得解碼再I/O,吃飽了撐的了啊,還是那句話:怪不得沒人用,百度語音合成效果比你強多了。

  總之,就這樣吧,不吐槽你了,真是費勁。。。

轉載于:https://www.cnblogs.com/zepc007/p/10360557.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249666.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249666.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249666.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鉤子函數和回調函數的區別

一般認為,鉤子函數就是回調函數的一種,其實還是有差異的,差異地方就是:觸發的時機不同。 先說鉤子函數: 鉤子(Hook)概念源于Windows的消息處理機制,通過設置鉤子,應用程…

【bzoj4712】洪水

Portal --> bzoj4712 Description 給你一棵樹,節點從\(1\)到\(n\)編號,每個節點有一個權值,有若干次操作,操作有以下兩種: \((C,x,delta)\):將編號為\(x\)的點的權值改為\(delta\) \((Q,x)\)&#xff1a…

[USACO]地震 (二分答案+最優比率生成樹詳解)

題面:[USACO 2001 OPEN]地震 題目描述: 一場地震把約翰家的牧場摧毀了, 堅強的約翰決心重建家園。 約翰已經重建了N個牧場,現在他希望能修建一些道路把它們連接起來。研究地形之后,約翰發現可供修建的道路有M條。碰巧的…

HTTP協議學習筆記

1.HTTP協議簡介 (1)客戶端連上web服務器后,若想獲得web服務器中的某個web資源,需遵守一定的通訊格式,HTTP協議用于定義客戶端與web服務器通迅的格式。 (2)HTTP是hypertext transfer protocol&…

defer和async的原理與區別

上一篇剛轉載了一篇有關于網站性能優化的文章,其中提及到了頁面的加載和渲染的過程,提到了defer和async的相關區別,但是本人在此之前并沒有深究其中的區別。 defer和async是script標簽的兩個屬性,用于在不阻塞頁面文檔解析的前提…

一些奇妙的線段樹操作

學過數據結構和會做題完全是兩個概念orz 各種各樣的題目都應該見識一下 簡單的目錄: 最大連續長度 吉司機線段樹 線段樹合并/分裂 最大連續長度問題 典型題目:HDU 3911 ($Black$ $And$ $White$) 題目大意:有一個長度為…

微服務實踐沙龍-上海站

微服務的概念最早由Martin Fowler與James Lewis于2014年共同提出,核心思想是圍繞業務能力組織服務,各個微服務可被獨立部署,服務間是松耦合的關系,以及數據和治理的去中心化管理。微服務能夠幫助企業應對業務復雜、頻繁更新以及團…

Spring的refresh()方法調用過程

Spring的refresh()方法調用過程 refresh()是Spring中比較核心的方法,Spring所有的初始化都在這個方法中完成 具體代碼如下 public void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// Prepare this co…

Web數據存儲之localStorage和sessionStorage

Web數據存儲之localStorage和sessionStorage 學習前端以來,自己了解有localStorage和sessionStorage的相關存儲的知識,也有實踐過,但是之前只限于能用的基礎上,但最近看了一本書,深入了解了localStorage和sessionStor…

(四)RabbitMQ消息隊列-服務詳細配置與日常監控管理

(四)RabbitMQ消息隊列-服務詳細配置與日常監控管理 原文:(四)RabbitMQ消息隊列-服務詳細配置與日常監控管理RabbitMQ服務管理 啟動服務:rabbitmq-server -detached【 /usr/local/rabbitmq/sbin/rabbitmq-server -deta…

oracle中delete、truncate、drop的區別 (轉載)

一、delete 1、delete是DML,執行delete操作時,每次從表中刪除一行,并且同時將該行的的刪除操作記錄在redo和undo表空間中以便進行回滾(rollback)和重做操作,但要注意表空間要足夠大,需要手動提交…

前端開發工程化探討--基礎篇(長文)

轉載自UC資深前端工程師張云龍的github 喂喂喂,那個切圖的,把頁面寫好就發給研發工程師套模板吧。 你好,切圖仔。 不知道你的團隊如何定義前端開發,據我所知,時至今日仍然有很多團隊會把前端開發歸類為產品或者設計崗…

Python讀取Json字典寫入Excel表格的方法

需求: 因需要將一json文件中大量的信息填入一固定格式的Excel表格,單純的復制粘貼肯定也能完成,但是想偷懶一下,于是借助Python解決問題。 環境: Windows7 Python2.7 Xlwt 具體分析: 原始文件為json列表&am…

Spring-BeanFactory源碼分析

正式進入Spring 源碼分析這個模塊了,對于spring這個龐大的工程,如果要一點點的完全分析是非常困難的,對于應用型框架,我還是偏向于掌握思想或者設計,而不是記住代碼,對于初次看spring源碼,相信大…

Linux查看修改時間、時區

同步網絡時間 yum install ntpntpdate time.nist.gov timedatectl set-timezone Asia/Shanghai如果上面time.nist.gov服務器同步不了,可以換下面幾個時間服務器試試:time.nist.govtime.nuri.net0.asia.pool.ntp.org1.asia.pool.ntp.org2.asia.pool.ntp.o…

我所知道的HTTP和HTTPS

摘要:相比之前的傳輸協議,HTTP/2在底層方面做了很多優化。有安全、省時、簡化開發、更好的適應復雜頁面、提供緩存利用率等優勢,阿里云早在去年發布的CDN6.0服務就已正式支持HTTP/2,訪問速度最高可提升68%。 寫在前面 超文本傳輸…

sql server常用性能計數器

https://blog.csdn.net/kk185800961/article/details/52462913?utm_sourceblogxgwz5 https://blog.csdn.net/kk185800961/article/details/27657239 以下部分轉自:http://www.cnblogs.com/zhijianliutang/p/4174697.html 常規計數器 收集操作系統服務器的服務器性能…

Python中正反斜杠('/'和'\')的意義

剛剛在學習些測試報告的時候,出現一個路徑的問題,找了很久的原因,竟然是少了一個反斜杠引起的,在此順便記錄一下正反斜杠的作用。 在Python中,記錄路徑時有以下幾種寫法,如:(大家都知…

什么是IOC容器

1.IOC不是一種技術,只是一種思想,一個重要的面向對象編程的法則,它能指導我們如何設計出松耦合,更優良的程序。傳統應用程序都是由我們在類內部主動創建依賴對象,從而導致類與類之間高耦合,難于測試&#x…