RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

1. 前言

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

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

image-20220224123015538

image-20220224123052201

2. 開通功能

華為云的提供的語音合成,是一種將文本轉(zhuǎn)換成逼真語音的服務(wù)。用戶通過實(shí)時訪問和調(diào)用API獲取語音合成結(jié)果,將用戶輸入的文字合成為音頻。通過音色選擇、自定義音量、語速,為企業(yè)和個人提供個性化的發(fā)音服務(wù)。

2.1 語音交互服務(wù)

地址: 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參數(shù):

參數(shù) 是否必選 參數(shù)類型 描述
X-Auth-Token String 用戶Token。Token認(rèn)證就是在調(diào)用API的時候?qū)oken加到請求消息頭,從而通過身份認(rèn)證,獲得操作API的權(quán)限,響應(yīng)消息頭中X-Subject-Token的值即為Token。

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

**

(2)請求Body參數(shù):**

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

(3)TtsConfig的配置參數(shù):

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

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

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

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

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

(6)響應(yīng)的Body參數(shù)

狀態(tài)碼: 200

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

(7)CustomResult參數(shù)

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

2.3 在線調(diào)試接口

通過在線調(diào)試接口,可以快速調(diào)試接口參數(shù),請求方式,返回結(jié)果等信息。

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

image-20220224110439767

還可以在線填入測試參數(shù),進(jìn)行測試效果。

image-20220224110636711

2.4 請求接口總結(jié)

請求地址格式: 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"
 }
 ?
 響應(yīng)體:
 {"result":{"data":xxxxxxxx"}}
 ?
 這個xxxx就是返回的Base64編碼語音數(shù)據(jù),可以解碼后保存成文件即可。

3. 實(shí)現(xiàn)源碼

軟件采用QT設(shè)計(jì)的,核心部分主要是用到了HTTP請求相關(guān)的操作。

image-20220224122910244

image-20220224122947682

3.1 文字轉(zhuǎn)語音源碼

//文本轉(zhuǎn)語音
 void Widget::TextToAudio(QString text)
 {
     function_select=1;
     QString requestUrl;
     QNetworkRequest request;
 ?
     //設(shè)置請求地址
     QUrl url;
 ?
     //請求地址
     requestUrl = QString("https://sis-ext.%1.myhuaweicloud.com/v1/%2/tts")
             .arg(SERVER_ID)
             .arg(PROJECT_ID);
 ?
     //設(shè)置數(shù)據(jù)提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
 ?
     //設(shè)置token
     request.setRawHeader("X-Auth-Token",Token);
 ?
     //構(gòu)造請求
     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());
 ?
     //發(fā)送請求
     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;
 ?
     //設(shè)置請求地址
     QUrl url;
 ?
     //獲取token請求地址
     requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens")
                  .arg(SERVER_ID);
 ?
     //自己創(chuàng)建的TCP服務(wù)器,測試用
     //requestUrl="http://10.0.0.6:8080";
 ?
     //設(shè)置數(shù)據(jù)提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8"));
 ?
     //構(gòu)造請求
     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);
 ?
     //發(fā)送請求
     manager- >post(request, text.toUtf8());
 }
 ?

3.3 解析返回值

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

    關(guān)注

    29

    文章

    2859

    瀏覽量

    81479
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1493

    瀏覽量

    61917
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30625

    瀏覽量

    268812
  • 語音識別
    +關(guān)注

    關(guān)注

    38

    文章

    1735

    瀏覽量

    112628
  • 語音合成
    +關(guān)注

    關(guān)注

    2

    文章

    89

    瀏覽量

    16152
  • 深度神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    0

    文章

    61

    瀏覽量

    4524
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2442

    瀏覽量

    17396
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    SYN6288語音合成芯片全開發(fā)

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

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

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

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

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

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

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

    29頁P(yáng)PT,詳細(xì)介紹Ouroboros的語音AI芯片

    阿里達(dá)摩院發(fā)布一款名為Ouroboros的語音AI芯片。據(jù)官方表示,這款芯片是業(yè)界首款專門用于語音合成算法的AI芯片,它基于FPGA芯片結(jié)構(gòu)
    發(fā)表于 10-16 16:32

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

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

    語音合成IC選型之經(jīng)驗(yàn)分享

    `語音合成芯片,又稱TTS芯片,通過UART接口或SPI接口通訊方式,接收待合成的文本數(shù)據(jù),實(shí)現(xiàn)文字轉(zhuǎn)語音模塊
    發(fā)表于 05-19 14:37

    PWM在合成語音輸出電路中的應(yīng)用

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

    基于短信和語音合成的報警接口設(shè)計(jì)

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

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

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

    采用人工智能技術(shù)的高質(zhì)量合成語音開發(fā)和定制

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

    語音合成數(shù)據(jù)的重要性:打造自然流暢的語音合成體驗(yàn)

    和應(yīng)用提供關(guān)鍵支持。 提供訓(xùn)練基礎(chǔ): 語音合成數(shù)據(jù)作為語音合成模型的訓(xùn)練基礎(chǔ),直接影響合成語音的質(zhì)量。豐富、準(zhǔn)確的
    的頭像 發(fā)表于 06-24 03:07 ?567次閱讀

    語音合成技術(shù)的簡介與未來發(fā)展

    計(jì)算機(jī)技術(shù)生成人類可聽的語音,從而實(shí)現(xiàn)語音交互的過程。根據(jù)合成方式的不同,語音合成技術(shù)可分為以下幾類: 參數(shù)
    的頭像 發(fā)表于 09-15 18:17 ?2019次閱讀

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

     可發(fā)聲芯片分為語音芯片和語音合成芯片,二者在技術(shù)和用途上不同。語音合成芯片能將任意文字實(shí)時轉(zhuǎn)換
    的頭像 發(fā)表于 10-31 15:42 ?579次閱讀
    RM新时代网站-首页