最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【雕爺學(xué)編程】Arduino動手做(129)---TTS文字轉(zhuǎn)語音合成模塊

2023-06-27 06:43 作者:驢友花雕  | 我要投稿

37款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實踐出真知(一定要動手做)的理念,以學(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來—小小的進步或是搞不掂的問題,希望能夠拋磚引玉。


【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)

實驗一百二十九:中文TTS文字轉(zhuǎn)語音合成模塊 替代SYN6288和XFS5152


知識點:TTS(Text-To-Speech,文本到語音)

我們比較熟悉的ASR(Automatic Speech Recognition),是將聲音轉(zhuǎn)化為文字,可類比于人類的耳朵。而TTS是將文字轉(zhuǎn)化為聲音(朗讀出來),類比于人類的嘴巴,是人機對話的一部分,讓機器能夠說話。

TTS是同時運用語言學(xué)和心理學(xué)的杰出之作,在內(nèi)置芯片的支持之下,通過神經(jīng)網(wǎng)絡(luò)的設(shè)計,把文字智能地轉(zhuǎn)化為自然語音流。TTS技術(shù)對文本文件進行實時轉(zhuǎn)換,轉(zhuǎn)換時間之短可以秒計算。在其特有智能語音控制器作用下,文本輸出的語音音律流暢,使得聽者在聽取信息時感覺自然,毫無機器語音輸出的冷漠與生澀感。TTS語音合成技術(shù) [1]??即將覆蓋國標(biāo)一、二級漢字,具有英文接口,自動識別中、英文,支持中英文混讀。所有聲音采用真人普通話為標(biāo)準(zhǔn)發(fā)音,實現(xiàn)了120-150個漢字/分鐘的快速語音合成,朗讀速度達3-4個漢字/秒,使用戶可以聽到清晰悅耳的音質(zhì)和連貫流暢的語調(diào)。有少部分MP3隨身聽具有了TTS功能。


語音合成(SpeechSynthesis)

語音合成,能將任意文字信息實時轉(zhuǎn)化為標(biāo)準(zhǔn)流暢的語音朗讀出來,相當(dāng)于給機器裝上了人工嘴巴。它涉及聲學(xué)、語言學(xué)、數(shù)字信號處理、計算機科學(xué)等多個學(xué)科技術(shù),是中文信息處理領(lǐng)域的一項前沿技術(shù),解決的主要問題就是如何將文字信息轉(zhuǎn)化為可聽的聲音信息,也即讓機器像人一樣開口說話。我們所說的“讓機器像人一樣開口說話”與傳統(tǒng)的聲音回放設(shè)備(系統(tǒng))有著本質(zhì)的區(qū)別。傳統(tǒng)的聲音回放設(shè)備(系統(tǒng)),如磁帶錄音機,是通過預(yù)先錄制聲音然后回放來實現(xiàn)“讓機器說話”的。這種方式無論是在內(nèi)容、存儲、傳輸或者方便性、及時性等方面都存在很大的限制。而通過計算機語音合成則可以在任何時候?qū)⑷我馕谋巨D(zhuǎn)換成具有高自然度的語音,從而真正實現(xiàn)讓機器“像人一樣開口說話”。

語音合成是通過機械的、電子的方法產(chǎn)生人造語音的技術(shù)。TTS技術(shù)(又稱文語轉(zhuǎn)換技術(shù))隸屬于語音合成,它是將計算機自己產(chǎn)生的、或外部輸入的文字信息轉(zhuǎn)變?yōu)榭梢月牭枚?、流利的漢語口語輸出的技術(shù)。TTS將儲存于電腦中的文件,如幫助文件或者網(wǎng)頁,轉(zhuǎn)換成自然語音輸出。TTS不僅能幫助有視覺障礙的人閱讀計算機上的信息,更能增加文本文檔的可讀性。TTS應(yīng)用包括語音驅(qū)動的郵件以及聲音敏感系統(tǒng),并常與聲音識別程序一起使用。語音合成滿足將文本轉(zhuǎn)化成擬人化語音的需求,打通人機交互閉環(huán)。 提供多種音色選擇,支持自定義音量、語速,讓發(fā)音更自然、更專業(yè)、更符合場景需求。語音合成廣泛應(yīng)用于語音導(dǎo)航、有聲讀物、機器人、語音助手、自動新聞播報等場景,提升人機交互體驗,提高語音類應(yīng)用構(gòu)建效率。??


TTS一般分為兩個步驟

一、 文本處理。這一步做的事情是把文本轉(zhuǎn)化成音素序列,并標(biāo)出每個音素的起止時間、頻率變化等信息。作為一個預(yù)處理步驟,它的重要性經(jīng)常被忽視,但是它涉及到很多值得研究的問題,比如拼寫相同但讀音不同的詞的區(qū)分、縮寫的處理、停頓位置的確定,等等。

二、語音合成。狹義上這一步專指根據(jù)音素序列(以及標(biāo)注好的起止時間、頻率變化等信息)生成語音,廣義上它也可以包括文本處理的步驟。這一步主要有三類方法:

1、拼接法,即從事先錄制的大量語音中,選擇所需的基本單位拼接而成。這樣的單位可以是音節(jié)、音素等等;為了追求合成語音的連貫性,也常常用使用雙音子(從一個音素的中央到下一個音素的中央)作為單位。拼接法合成的語音質(zhì)量較高,但它需要錄制大量語音以保證覆蓋率。

2、參數(shù)法,即根據(jù)統(tǒng)計模型來產(chǎn)生每時每刻的語音參數(shù)(包括基頻、共振峰頻率等),然后把這些參數(shù)轉(zhuǎn)化為波形。參數(shù)法也需要事先錄制語音進行訓(xùn)練,但它并不需要100%的覆蓋率。參數(shù)法合成出的語音質(zhì)量比拼接法差一些。

3、聲道模擬法。參數(shù)法利用的參數(shù)是語音信號的性質(zhì),它并不關(guān)注語音的產(chǎn)生過程。與此相反,聲道模擬法則是建立聲道的物理模型,通過這個物理模型產(chǎn)生波形。這種方法的理論看起來很優(yōu)美,但由于語音的產(chǎn)生過程實在是太復(fù)雜,所以實用價值并不高。


中文TTS文本轉(zhuǎn)語音合成模塊(當(dāng)前版本V5 )

網(wǎng)上資料非常少,細(xì)看模塊上主要有三塊芯片,U1估計是主要芯片,可惜被蓋住了,查不到具體型號。


U2是8002A

8002A 是一顆帶關(guān)斷模式的音頻功放 IC。在 5V 輸入電壓下工作時,負(fù)載(3Ω)上的平均功率為 3W,且失真度不超過 10%。而對于手提設(shè)備而言,當(dāng) VDD 作用于關(guān)斷端時,8002A 將會進入關(guān)斷模式,此時的功耗極低,IQ 僅為 0.6uA。8002A 是專為大功率、高保真的應(yīng)用場合所設(shè)計的音頻功放 IC。所需外圍元件少且在 2.0V~5.5V 的輸入電壓下即可工作。

?

功能特點

1、無需輸出耦合電容或外部緩沖電路。

2、 穩(wěn)定的增益輸出。

3、 外部增益設(shè)置。

4、 封裝形式:SOP8、SOP8-PP、DIP8、MSOP8。

U5的型號是MX25L6406EMI-12G

功能描述:IC FLASH SER 64MB 86MHZ 16SOP

RoHS:是

類別:集成電路 (IC) >> 存儲器

系列:MX25xxx05/06

標(biāo)準(zhǔn)包裝:2,500

系列:- 格式 -

存儲器:EEPROMs - 串行

存儲器類型:EEPROM

存儲容量:1K (128 x 8)

速度:100kHz

接口:UNI/O(單線)

電源電壓:1.8 V ~ 5.5 V

工作溫度:-40°C ~ 85°C

封裝/外殼:8-TSSOP,8-MSOP(0.118,3.00mm 寬)


MX25L6406EMI-12G,查到的外文資料,功能方框圖和型號命名規(guī)則

Arduino實驗開源代碼

Arduino實驗場景圖


實驗串口返回情況


完成初步的實驗,通過串口,模塊可以準(zhǔn)確合成阿拉伯?dāng)?shù)字和英文字母的發(fā)音,并在喇叭上播放。

視頻播放?https://v.youku.com/v_show/id_XNDUzNDgxMDE2NA==.html



實驗之二:嘗試中文TTS文本轉(zhuǎn)語音合成播放


Arduino實驗開源代碼

實驗串口返回情況

由于編碼不同,發(fā)出的是亂碼播放,下面開始嘗試學(xué)習(xí)編碼轉(zhuǎn)換相關(guān).......

播放鏈接??https://v.youku.com/v_show/id_XNDUzNDkyMjY4OA==.html


經(jīng)查詢資料,中文TTS文本轉(zhuǎn)語音合成模塊支持任意中文、 英文字母、阿拉伯?dāng)?shù)字的文本合成,并且支持中文、英文字母、數(shù)字的混讀。模塊支持中文 GBK 編碼集;支持大、小寫英文字母。

GBK編碼(即漢字國標(biāo)擴展碼)
GBK編碼,是對GB2312編碼的擴展,因此完全兼容GB2312-80標(biāo)準(zhǔn)。GBK編碼依然采用雙字節(jié)編碼方案,其編碼范圍:8140-FEFE,剔除xx7F碼位,共23940個碼位。共收錄漢字和圖形符號21886個,其中漢字(包括部首和構(gòu)件)21003個,圖形符號883個。GBK編碼支持國際標(biāo)準(zhǔn)ISO/IEC10646-1和國家標(biāo)準(zhǔn)GB13000-1中的全部中日韓漢字,并包含了BIG5編碼中的所有漢字。GBK編碼方案于1995年12月15日正式發(fā)布,這一版的GBK規(guī)范為1.0版。Windows 95系統(tǒng)就是以GBK為內(nèi)碼,又由于GBK同時也涵蓋了Unicode所有CJK漢字,所以也可以和Unicode做一一對應(yīng)。

編碼范圍
8140-FEFE (33088-65278)
全部編碼分為三大部分:1.漢字區(qū);2.圖形符號區(qū);3.用戶自定義區(qū)(詳情見特性碼位分配及順序)

適用范圍以及存在問題
幾乎完美支持漢字,但是不支持部分國家的語言(如一些東亞國家,日本等)
所以經(jīng)常會有GBK到UNICODE的轉(zhuǎn)換

特性
1、字匯——GBK 規(guī)范收錄了 ISO 10646.1 中的全部 CJK 漢字和符號,并有所補充。具體包括:
GB 2312 中的全部漢字、非漢字符號。
GB 13000.1 中的其他 CJK 漢字。以上合計 20902 個 GB 化漢字。
《簡化字總表》中未收入 GB 13000.1 的 52 個漢字。
《康熙字典》及《辭海》中未收入 GB 13000.1 的 28 個部首及重要構(gòu)件。
13 個漢字結(jié)構(gòu)符。
BIG-5 中未被 GB 2312 收入、但存在于 GB 13000.1 中的 139 個圖形符號。
GB 12345 增補的 6 個拼音符號。
漢字“○”。
GB 12345 增補的 19 個豎排標(biāo)點符號(GB12345 較 GB 2312 增補豎排標(biāo)點符號 29 個,其中 10 個未被 GB 13000.1 收入,故 GBK 亦不收)。
從 GB 13000.1 的 CJK 兼容區(qū)挑選出的 21 個漢字。
GB 13000.1 收入的 31 個 IBM OS/2 專用符號。
未錄入《新華字典》上的一些字,如“韡”的簡體。

2、碼位分配及順序
GBK 亦采用雙字節(jié)表示,總體編碼范圍為 8140-FEFE,首字節(jié)在 81-FE 之間,尾字節(jié)在 40-FE 之間,剔除 xx7F 一條線。總計 23940 個碼位,共收入 21886 個漢字和圖形符號,其中漢字(包括部首和構(gòu)件)21003 個,圖形符號 883 個。

3、誤處理
低字節(jié)是0x40-0x7E的GBK字符有一定特殊性,因為這些字符占用了ASCII碼的位置,這樣會給一些系統(tǒng)帶來麻煩。有些系統(tǒng)中用0x40-0x7E中的字符(如“|”)做特殊符號,在定位這些符號時又沒有判斷這些符號是不是屬于某個 GBK字符的低字節(jié),這樣就會造成錯誤判斷。在支持GB2312的環(huán)境下就不存在這個問題。需要注意的是支持GBK的環(huán)境中小于0x80的某個字節(jié)未必就 是ASCII符號;另外就是最好選用小于0×40的ASCII符號做一些特殊符號,這樣就可以快速定位,且不用擔(dān)心是某個漢字的另一半。Big5編碼中也存在相應(yīng)問題。

4、雙字節(jié)編碼
遵循GB2312規(guī)定。


網(wǎng)上搜尋,請教知乎《Arduino 魔法書》專欄的兔子老師,才明白這個TTS模塊只能識別16進制的GBK編碼。

百度——漢字轉(zhuǎn)GBK,有很多在線工具,這里使用千千秀字(https://www.qqxiuzi.cn/bianma/zifuji.php),輸入“謝謝兔子老師”,自動轉(zhuǎn)換結(jié)果見下圖

例如漢字”兔子”的GBK編碼是“CDC3 D7D3”,再轉(zhuǎn)為C語言格式“0xCD,0xC3,0xD7,0xD3”。

實驗開源代碼如下:


發(fā)送到串口的16進制GBK編碼

Arduino實驗開源代碼之三



實驗串口返回情況




中文TTS文本轉(zhuǎn)語音模塊合成播放“春節(jié)快樂”的10秒視頻
https://v.youku.com/v_show/id_XNDUzNTY3MjMyNA==.htm


完成本實驗,特別感謝兔子老師的微信指導(dǎo)與幫助,主要學(xué)習(xí)與參考的資料有

Arduino 語音交互 TTS語音合成
https://zhuanlan.zhihu.com/p/66314323

DIY朗讀機器人!不想給孩子讀故事?TTS語音合成模塊了解一下,B719模塊效果測試
https://www.bilibili.com/read/cv3630794/

TTS 真人發(fā)音 SYN6288 模塊
https://www.arduino.cn/thread-75043-1-1.html

Arduino語音模塊-Speech Synthesizer Bee語音合成模塊
https://www.ncnynl.com/archives/201606/192.html

關(guān)于 Arduino 發(fā)送中文字符問題 GB2312轉(zhuǎn)16進制
https://www.cnblogs.com/xiaohe520/articles/7918641.html


【雕爺學(xué)編程】Arduino動手做(129)---TTS文字轉(zhuǎn)語音合成模塊的評論 (共 條)

分享到微博請遵守國家法律
军事| 唐山市| 思南县| 隆尧县| 广昌县| 九龙坡区| 安吉县| 阜康市| 监利县| 和政县| 江孜县| 报价| 湖口县| 湖南省| 南阳市| 海南省| 荥经县| 田阳县| 沈丘县| 昌黎县| 磐石市| 博野县| 科技| 长治县| 土默特右旗| 玛沁县| 都江堰市| 莱西市| 舞钢市| 宁南县| 普格县| 苗栗县| 方城县| 云南省| 资阳市| 日照市| 平远县| 顺平县| 喜德县| 江北区| 合阳县|