吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AI語音處理-文字合成語音功能

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2023-07-08 09:50 ? 次閱讀

1. 前言

語音合成技術在生活中用越來越廣泛,閱讀聽書、訂單播報、智能硬件、語音導航 很多場景下都加入了語音播報功能。語音合成基于深度神經網絡技術,提供高度擬人、流暢自然的語音合成服務,可以模擬出不同人的聲音,讓應用APP、設備開口說話,還能智能化訓練個性語音。

這篇文章就介紹華為云提供的語音合成服務使用方法,利用提供的API接口完成語音合成功能,將合成的語音下載下來。

image-20220224123015538

image-20220224123052201

2. 開通功能

華為云的提供的語音合成,是一種將文本轉換成逼真語音的服務。用戶通過實時訪問和調用API獲取語音合成結果,將用戶輸入的文字合成為音頻。通過音色選擇、自定義音量、語速,為企業和個人提供個性化的發音服務。

2.1 語音交互服務

地址: https://console.huaweicloud.com/sis/?region=cn-north-4#/sis/stts

image-20220224110120220

2.2 幫助文檔

地址: https://support.huaweicloud.com/api-sis/sis_03_0111.html

image-20220224112109108

(1)請求Header參數:

參數 是否必選 參數類型 描述
X-Auth-Token String 用戶Token。Token認證就是在調用API的時候將Token加到請求消息頭,從而通過身份認證,獲得操作API的權限,響應消息頭中X-Subject-Token的值即為Token。

請求頭里的X-Auth-Token字段在之前的文章已經介紹過,獲取方法看這里: https://bbs.huaweicloud.com/blogs/317759 翻到2.3小節。

**

(2)請求Body參數:**

參數 是否必選 參數類型 描述
text String 待合成的文本,文本長度限制小于500字符。
config 配置JSON 語音合成配置信息。

(3)TtsConfig的配置參數:

參數 是否必選 參數類型 描述
audio_format String 語音格式頭:wav、mp3、pcm默認:wav父節點:config
sample_rate String 采樣率:16000、8000默認:8000父節點:config
property String 語音合成特征字符串,組成形式為{language} {speaker} {domain},即“語種人員標識領域”。發音人分為普通發音人和精品發音人,每次調用價格相同,針對精品發音人,每50字計一次調用,不足50字按一次計;普通發音人每100字計一次調用,不足100字按一次計。其中1個漢字、1個英文字母或1個標點均算作1個字符。精品發音人:區域僅支持cn-north-4、cn-east-3,暫時不支持音高調節。使用精品發音人如果報錯SIS.0411,請檢查是否符合使用約束。默認:chinese_xiaoyan_common父節點:config
speed Integer 語速。取值范圍:-500~500默認值:0父節點:config**說明:**當取值為“0”時,表示一個成年人正常的語速,約為250字/分鐘。設置該值時,語速和數值沒有絕對的映射關系。
pitch Integer 音高。取值范圍: -500~500默認值:0父節點:config
volume Integer 音量。取值范圍:0~100默認值:50父節點:config

(4)普通發音人property取值范圍:

property取值 描述
chinese_xiaoqi_common 小琪,標準女聲發音人。
chinese_xiaoyu_common 小宇,標準男聲發音人。
chinese_xiaoyan_common 小燕,溫柔女聲發音人。
chinese_xiaowang_common 小王,童聲發音人。
chinese_xiaowen_common 小雯,柔美女聲發音人。
chinese_xiaojing_common 小婧,俏皮女聲發音人。
chinese_xiaosong_common 小宋,激昂男聲發音人。
chinese_xiaoxia_common 小夏,熱情女聲發音人。
chinese_xiaodai_common 小呆,呆萌童聲發音人。
chinese_xiaoqian_common 小倩,成熟女聲發音人。
english_cameal_common cameal,柔美女聲英文發音人。

(5)精品發音人property取值范圍:

property取值 描述
chinese_huaxiaoxia_common 華小夏,熱情女聲發音人。
chinese_huaxiaogang_common 華曉剛,利落男聲發音人。
chinese_huaxiaolu_common 華小璐,知性女聲發音人。
chinese_huaxiaoshu_common 華小舒,舒緩女聲發音人。
chinese_huaxiaowei_common 華小唯,嗲柔女聲發音人。
chinese_huaxiaoliang_common 華小靚,嘹亮女聲發音人。
chinese_huaxiaodong_common 華曉東,成熟男聲發音人。
chinese_huaxiaoyan_common 華小顏,嚴厲女聲發音人。
chinese_huaxiaoxuan_common 華小萱,臺灣女聲發音人。
chinese_huaxiaowen_common 華小雯,柔美女聲發音人。
chinese_huaxiaoyang_common 華曉陽,朝氣男聲發音人。
chinese_huaxiaomin_common 華小閩,閩南女聲發音人。
chinese_huanvxia_literature 華女俠,武俠女生發音人,只支持16k的采樣率。
chinese_huaxiaoxuan_literature 華曉懸,懸疑男聲發音人,只支持16k的采樣率。
chinese_huaxiaomei_common 華小美,溫柔女聲發音人。

(6)響應的Body參數

狀態碼: 200

參數 是否必選 參數類型 描述
trace_id String 服務內部的令牌,可用于在日志中追溯具體流程。在某些錯誤情況下可能沒有此令牌字符串。
result object 調用成功表示識別結果,調用失敗時無此字段。

(7)CustomResult參數

參數 是否必選 參數類型 描述
data String 語音數據,以Base64編碼格式返回。用戶如需生成音頻,需要將Base64編碼解碼成byte數組,再保存為音頻,音頻格式同**“audio_format”**參數設置的值,默認為wav格式。

2.3 在線調試接口

通過在線調試接口,可以快速調試接口參數,請求方式,返回結果等信息。

地址: https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=SIS&api=RunTts

image-20220224110439767

還可以在線填入測試參數,進行測試效果。

image-20220224110636711

2.4 請求接口總結

請求地址格式: POST /v1/{project_id}/tts
 ?
 ?
 完整請求地址:
 https://sis-ext.cn-north-4.myhuaweicloud.com/v1/0e5957be8a00f53c2fa7c0045e4d8fbf/tts
 ?
 請求體:
 {
  "text": "請注意坐姿",
  "config": {
   "audio_format": "wav",
   "sample_rate": "16000",
   "property": "chinese_xiaoqi_common",
   "speed": 0,
   "pitch": 0,
   "volume": 0
  }
 }
 ?
 ?
 請求頭:
 {
  "X-Auth-Token": "******",
  "Content-Type": "application/json;charset=UTF-8"
 }
 ?
 響應體:
 {"result":{"data":xxxxxxxx"}}
 ?
 這個xxxx就是返回的Base64編碼語音數據,可以解碼后保存成文件即可。

3. 實現源碼

軟件采用QT設計的,核心部分主要是用到了HTTP請求相關的操作。

image-20220224122910244

image-20220224122947682

3.1 文字轉語音源碼

//文本轉語音
 void Widget::TextToAudio(QString text)
 {
     function_select=1;
     QString requestUrl;
     QNetworkRequest request;
 ?
     //設置請求地址
     QUrl url;
 ?
     //請求地址
     requestUrl = QString("https://sis-ext.%1.myhuaweicloud.com/v1/%2/tts")
             .arg(SERVER_ID)
             .arg(PROJECT_ID);
 ?
     //設置數據提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
 ?
     //設置token
     request.setRawHeader("X-Auth-Token",Token);
 ?
     //構造請求
     url.setUrl(requestUrl);
     request.setUrl(url);
 ?
     QString post_param=QString
                ("{"
                 ""text": "%1","
                 ""config": {"
                  ""audio_format": "%2","
                  ""sample_rate": "%3","
                  ""property": "%4","
                  ""speed": %5,"
                  ""pitch": 0,"
                  ""volume": %6"
                 "}"
                "}").arg(text).arg(ui- >comboBox_formt- >currentText())
             .arg(ui- >comboBox_cai_yang_lv- >currentText())
             .arg(ui- >comboBox_fa_yin_ren- >currentText())
             .arg(ui- >spinBox_audio_speed- >value())
             .arg(ui- >spinBox_yin_liang- >value());
 ?
     //發送請求
     manager- >post(request, post_param.toUtf8());
 }
 ?
 ?
 //生成語音
 void Widget::on_pushButton_to_audio_clicked()
 {
     QString text=ui- >lineEdit- >text();
     if(text.isEmpty())
     {
         QMessageBox::information(this,"提示","請輸入文本",
         QMessageBox::Ok,QMessageBox::Ok);
         return;
     }
     qDebug()< < "text:"<

3.2 獲取token

/*
 功能: 獲取token
 */
 void Widget::GetToken()
 {
     //表示獲取token
     function_select=3;
 ?
     QString requestUrl;
     QNetworkRequest request;
 ?
     //設置請求地址
     QUrl url;
 ?
     //獲取token請求地址
     requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens")
                  .arg(SERVER_ID);
 ?
     //自己創建的TCP服務器,測試用
     //requestUrl="http://10.0.0.6:8080";
 ?
     //設置數據提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8"));
 ?
     //構造請求
     url.setUrl(requestUrl);
 ?
     request.setUrl(url);
 ?
     QString text =QString("{"auth":{"identity":{"methods":["password"],"password":"
     "{"user":{"domain": {"
     ""name":"%1"},"name": "%2","password": "%3"}}},"
     ""scope":{"project":{"name":"%4"}}}}")
             .arg(MAIN_USER)
             .arg(IAM_USER)
             .arg(IAM_PASSWORD)
             .arg(SERVER_ID);
 ?
     //發送請求
     manager- >post(request, text.toUtf8());
 }
 ?

3.3 解析返回值

//解析反饋結果
 void Widget::replyFinished(QNetworkReply *reply)
 {
     QString displayInfo="";
 ?
     int statusCode = reply- >attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
 ?
     //讀取所有數據
     QByteArray replyData = reply- >readAll();
 ?
     qDebug()< < "狀態碼:"<
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 音頻
    +關注

    關注

    29

    文章

    2903

    瀏覽量

    81951
  • API
    API
    +關注

    關注

    2

    文章

    1511

    瀏覽量

    62400
  • AI
    AI
    +關注

    關注

    87

    文章

    31536

    瀏覽量

    270343
  • 語音識別
    +關注

    關注

    38

    文章

    1742

    瀏覽量

    112927
  • 語音合成
    +關注

    關注

    2

    文章

    90

    瀏覽量

    16205
  • 深度神經網絡

    關注

    0

    文章

    61

    瀏覽量

    4561
  • 華為云
    +關注

    關注

    3

    文章

    2689

    瀏覽量

    17588
收藏 人收藏

    評論

    相關推薦

    基于波形音頻段處理的中文語音合成研究

    高,語音單元之間的過渡還不夠自然。因此,如何提高合成語音的自然度,使合成語音更加流暢是語音合成
    發表于 03-06 22:24

    SYN6288語音合成芯片全開發

    、準確的中文語音合成效果;可合成任意的中文文本,支持英文字母的合成; ?具有智能的文本分析處理
    發表于 12-02 08:36

    訊飛AI體驗棧重磅上線,聽寫合成文字識別輕松搞定!

    ,后臺曾推出智能聊天、星座分析、世界杯小游戲等多款應用功能,而這一次,借助訊飛開放平臺的強大AI功能,我們一次集結了以下優秀AI能力,讓你免費、高效地使用上堪稱完美的日常
    發表于 07-24 09:02

    語音合成芯片與語音芯片對比

    )的轉換。其特性是:支持任意中文文本的合成,對常見的數值、電話號碼、時間日期、度量衡符號等格式的文本具有文本智能分析處理功能;只需要上位機通過串行通信對其發送一段文本信息,再將文本信息轉化為
    發表于 03-08 17:26

    語音合成芯片與語音芯片對比

    )的轉換。其特性是:支持任意中文文本的合成,對常見的數值、電話號碼、時間日期、度量衡符號等格式的文本具有文本智能分析處理功能;只需要上位機通過串行通信對其發送一段文本信息,再將文本信息轉化為
    發表于 03-11 15:39

    29頁PPT,詳細介紹Ouroboros的語音AI芯片

    阿里達摩院發布一款名為Ouroboros的語音AI芯片。據官方表示,這款芯片是業界首款專門用于語音合成算法的AI芯片,它基于FPGA芯片結構
    發表于 10-16 16:32

    語音合成IC與語音IC的兩三事

    通訊方式,接收待合成的文本數據,實現文本到語音(或TTS語音)的轉換。其特性是:支持任意中文文本的合成,對常見的數值、電話號碼、時間日期、度量衡符號等格式的文本具有文本智能分析
    發表于 05-13 17:02

    語音合成IC選型之經驗分享

    `語音合成芯片,又稱TTS芯片,通過UART接口或SPI接口通訊方式,接收待合成的文本數據,實現文字語音模塊
    發表于 05-19 14:37

    PWM在合成語音輸出電路中的應用

    基于采用權電流D/A方式實現合成語音輸出方式有集成電阻離散性大、開關的非線性,以及功耗高等缺點,提出了利用脈沖寬度調制(PWM)技術的方法將數字語音信號直接轉換為脈沖寬
    發表于 05-16 11:53 ?45次下載

    基于短信和語音合成的報警接口設計

    本文采用手機模塊TC35i和語音合成模塊XF-S3011構成短信和語音報警的智能接口,它在短信收發同時可合成語音輸出;另外提供基于C++Builder組件形式的PC機接口軟件,便于根據
    發表于 07-29 16:17 ?38次下載

    基于TMS320C6678的合成語音檢測算法

    流水和核間高效通信。實驗結果表明,該方法是可行、有效的,并且基于TMS320C6678的合成語音檢測系統的實時處理能力有很大提升。
    發表于 11-14 14:47 ?15次下載
    基于TMS320C6678的<b class='flag-5'>合成語音</b>檢測算法

    采用人工智能技術的高質量合成語音開發和定制

      當涉及到高質量的合成語音開發和定制時,深度學習被證明是一個強大的工具。一家總部位于多倫多的初創公司, NVIDIA Inception 成員類似人工智能正在利用一種新的生成語音工具增加賭注,該工具能夠創建高質量的合成人工智能
    的頭像 發表于 04-08 09:28 ?1448次閱讀

    語音合成數據的重要性:打造自然流暢的語音合成體驗

    和應用提供關鍵支持。 提供訓練基礎: 語音合成數據作為語音合成模型的訓練基礎,直接影響合成語音的質量。豐富、準確的
    的頭像 發表于 06-24 03:07 ?646次閱讀

    語音合成技術的簡介與未來發展

    計算機技術生成人類可聽的語音,從而實現語音交互的過程。根據合成方式的不同,語音合成技術可分為以下幾類: 參數
    的頭像 發表于 09-15 18:17 ?2331次閱讀

    科普語音芯片和語音合成芯片的不同之處

     可發聲芯片分為語音芯片和語音合成芯片,二者在技術和用途上不同。語音合成芯片能將任意文字實時轉換
    的頭像 發表于 10-31 15:42 ?644次閱讀
    金沙百家乐官网现金网| bet365.com| 棋牌百家乐怎么玩| 百家乐官网庄闲桌子| a8娱乐城开户| 成人百家乐的玩法技巧和规则| 皇冠娱乐场| 百家乐号公| 百家乐现金网开户平台| 麻将百家乐官网筹码| 仪征市| 德州扑克网上平台| 蓝盾百家乐平台| 百家乐下注口诀| 百家乐官网高科技出千工具| 百家乐官网扑克玩法| 娱乐城图片| 威尼斯人娱乐网网上百家乐的玩法技巧和规则 | 澳盈88开户,| 太阳城sun866| 最新百家乐网评测排名| 新宝百家乐网址| 百家乐官网看大路| 百家乐官网怎样发牌| 金宝博网址| 合肥太阳城在哪| 百家乐网站赌钱吗| 在线百家乐有些一| 鸟巢百家乐官网的玩法技巧和规则| 百家乐官网开户送8彩金| 栖霞市| 香港六合彩特码资料| 天津水果机定位器| 百家乐路技巧| 百家乐官网手机壳| 专业的百家乐官网玩家| 玩百家乐官网澳门皇宫娱乐城 | 澳门顶级赌场| 威尼斯人娱乐平台开户| 粤港澳百家乐娱乐| 百家乐佛泰阁|