配對的數(shù)據(jù)集上,完全隨機從頭開始訓練。本文是來自喜馬拉雅FM音視頻工程師馬力的投稿,他手把手式的介紹了Tacotron的使用方法,幫助你快速上手。" />

chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

一個基于Tensorflow框架的開源Tacotron實現(xiàn)

LiveVideoStack ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-04-10 08:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

語音合成(Text to Speech Synthesis)是一種將文本轉化為自然語音輸出的技術,在各行各業(yè)有著廣泛用途。傳統(tǒng)TTS是基于拼接和參數(shù)合成技術,效果上同真人語音的自然度尚有一定差距,效果已經(jīng)達到上限,在實現(xiàn)上也依賴于復雜流水線,比如以文本分析為前端的語言模型、語音持續(xù)時間模型、聲學特征預測模型、將頻譜恢復成時域波形的聲碼器(vocoder)。這些組件都是基于大量領域專業(yè)知識,設計上很艱難,需要投入大量工程努力,對于手頭資源有限的中小型玩家來說,這種“高大上”的技術似乎有些玩不起。

幸運的是近年來基于神經(jīng)網(wǎng)絡架構的深度學習方法崛起,使得原本在傳統(tǒng)專業(yè)領域門檻極高的TTS應用上更接地氣?,F(xiàn)在,我們有了新方法Tacotron一種端到端的TTS生成模型。所謂“端到端”就是直接從字符文本合成語音,打破了各個傳統(tǒng)組件之間的壁壘,使得我們可以從<文本,聲譜>配對的數(shù)據(jù)集上,完全隨機從頭開始訓練。從Tacotron的論文中我們可以看到,Tacotron模型的合成效果是優(yōu)于要傳統(tǒng)方法的。

本文下面主要內(nèi)容是github上一個基于Tensorflow框架的開源Tacotron實現(xiàn),介紹如何快速上手漢語普通話的語音合成。至于模型的技術原理,限于篇幅就不再詳細介紹了,有興趣可以直接閱讀論文,本文的宗旨是,對于剛入門的同學能夠在自己動手實踐中獲取及時的結果反饋。

在正文開始之前,筆者假設讀者手頭已經(jīng)準備好項目運行的軟硬件環(huán)境,包括NVIDIA GTX系列顯卡及其驅動,能夠在控制臺上使用Python3引入Tensorflow模塊。

關于Tacotron的源代碼,我們選擇了Keith Ito的個人項目,筆者的漢語語音合成正是基于此源碼上修改而成,代碼在:https://github.com/begeekmyfriend/tacotron

訓練語料庫可以在:

http://www.openslr.org/18上下載6.4G大小的THCHS-30,這是由清華大學開放的漢語普通話語料,許可證為Apache License v2.0。

我們可以開始安裝運行了。先clone源代碼到本地~/tacotron,然后解壓THCHS-30數(shù)據(jù)集到根目錄下,如下所示:

~/tacotron

|- data_thchs30

|- data

|- dev

|- lm_phone

|- lm_word

|- README.TXT

|- test

|- train

注意,~/tacotron是默認的路徑,之后運行Python程序會直接把~/tacotron作為根目錄,如果你的項目根目錄不一樣,那么你必須修改程序的默認路徑參數(shù),否則會出現(xiàn)運行錯誤。

我們可以深入到:~/tacotron/data_thchs30/data里面去觀摩一下,后其中綴為“wav”是語音文件,采樣率16KHz,樣本寬度16-bit,單聲道,內(nèi)容是時長為10s左右的一段漢語。后綴為“trn”文件為文本標注(transcript),不同語言有著不同的標注方法,比如英語就可以直接用26個字母加上標點符號作為標注,也就是直接使用英文內(nèi)容本身;韓語由它自己一套字母表,每個字母可以使用Unicode代碼作為標注字符;而漢字本身有2~3萬個,窮舉的話太多,還有很多同音字,所以我們使用漢語拼音作為字符標注是一種可行方案(在此向漢語拼音之父周有光表示敬意)。比如有這么一句:

綠 是 陽春 煙 景 大塊 文章 的 底色 四月 的 林 巒 更是 綠 得 鮮活 秀媚 詩意 盎然

用漢語拼音標注為:

lv4 shi4 yang2 chun1 yan1 jing3 da4 kuai4 wen2 zhang1 de5 di3 se4 si4 yue4 de5 lin2 luan2 geng4 shi4 lv4 de5 xian1 huo2 xiu4 mei4 shi1 yi4 ang4 ran2

注意到除了拉丁字母的拼音,還有1~5個阿拉伯數(shù)字,表示聲調(四種聲調加上輕聲)。

也可以使用音素(聲母+韻母)為單元標注:

l v4 sh ix4 ii iang2 ch un1 ii ian1 j ing3 d a4 k uai4 uu un2 zh ang1 d e5 d i3 s e4 s iy4 vv ve4 d e5 l in2 l uan2 g eng4 sh ix4 l v4 d e5 x ian1 h uo2 x iu4 m ei4 sh ix1 ii i4 aa ang4 r an2

根據(jù)經(jīng)驗筆者要指出,如果以字符為單位[a-z1-5],其實上述兩種標注方法沒有本質區(qū)別,故我們只要使用漢語拼音標注方案即可。

聰明的讀者應該明白了,所謂的<文本,聲譜>配對,就是要讓機器學會將每一個包括空格和標點在內(nèi)的字符[a-z1-5 ,.;:],對應到(mel或線性)聲譜的某幾幀。

接下來進入實際操作階段。在根目錄下運行如下命令:

> python3 preprocess.py --dataset thchs30

這條命令會在根目錄下生成training目錄,里面存放了每個音頻文件的mel頻譜和線性頻譜(通過短時傅里葉變換STFT而得),后綴為"npy"的文件,用numpy庫加載即可得到多個narray數(shù)組(可以視為多個特征向量組成的多維矩陣),用作語音的聲學特征提取。除此之外還有個train.txt文件,里面基本上就是csv的格式將拼音標注同每個文件的聲譜對應起來。

再提醒一遍,我們的tacotron根目錄默認是~/tacotron,更改需要改變命令行參數(shù)。有了<文本,聲譜>配對數(shù)據(jù)集形式后,我們可以訓練了,輸入以下命令行:

> nohup python3 train.py --name thchs30 > output.out &

我們使用了nohup命令來屏蔽一切中斷信號,同時將Python進程置于后臺,這是由于訓練過程十分漫長(一般收斂需要10個小時,得到好的效果需要2天),免得網(wǎng)絡中斷或者終端斷開導致Python進程被殺死。訓練過程中的輸出將會保存在logs-thchs30目錄下,可能是這樣的:

~/tacotron

|- logs-thchs30

|- model.ckpt-92000.data-00000-of-00001

|- model.ckpt-92000.index

|- model.ckpt-92000.meta

|- step-92000-align.png

|- step-92000-align.wav

|- ...

以上是92K次迭代后保存下來的模型和alignment圖,順便說一下我們不需要關注step-92000-align.wav這個音頻文件,這并不是通過模型預測的實際效果,只是在訓練中使用了teacher forcing方法,不代表evaluation效果,可以不去管它。

如何判斷訓練是否達到預期呢?個人經(jīng)驗有兩個:一看學習是否收斂;二看損失(loss)低于某個值。由于Tacotron模型本質上是基于編碼器解碼器模式的seqtoseq模型,所以學習是否收斂可以從編碼器序列和解碼器序列是否對齊(alignment)判斷。

我們放了兩張alignment圖對比,上圖訓練了140K次迭代,可以看到?jīng)]有出現(xiàn)對齊,說明沒有收斂??赡艿脑蚝芏啵热鐢?shù)據(jù)集質量不好,標注不正確等等。下圖是92K次迭代,可以看到對齊情況良好,表明基本上可以通過文本來合成出有效的語音。這里要指出,所謂對齊并不是一定要筆直的斜線,它只是代表編碼器序列(文本)和解碼器序列(聲譜)是否對應起來,而且像素點越亮,效果越好。

第二個判斷點是loss值,越小表明越接近地真值(ground truth),當然必須在收斂的前提下,loss會趨于穩(wěn)定。在實際訓練中有可能出現(xiàn)loss值很低,但是仍然沒出現(xiàn)alignment的情況,這是是無法合成語音的。

當我們從訓練日志上看到,loss值低于0.07的時候,基本表示學習收斂并且效果穩(wěn)定了??梢詺⒌艉笈_Python進程,別擔心,logs-thchs30目錄下已經(jīng)保存了之前訓練過程中產(chǎn)生的模型,你可以從任意時刻生成模型隨時恢復繼續(xù)訓練,比如我們需要從92K次迭代生成的模型基礎上繼續(xù)訓練,命令行如下:

> nohup python3 train.py --name thchs30 --restore_step 92000 >> output.out &

好了,現(xiàn)在終于到了檢驗我們錄音效果的時刻了!不過我們無法直接輸入漢字文本,而是拼音標注,好在有開源項目python-pinyin幫我們搞定:https://github.com/mozillazg/python-pinyin

比如我們想合成一句“每個內(nèi)容生產(chǎn)者都可以很方便地實現(xiàn)自我價值,更多的人有了微創(chuàng)業(yè)的機會?!蔽覀兪褂胮ython-pinyin輸出的拼音標注拷貝到eval.py里,輸入命令行:

> python3 eval.py --checkpoint logs-thchs30/model.ckpt-133000

一段時間后,就會在logs-thchs30目錄下生成了eval-133000-0.wav,這就是我們想要的結果,一起來聽聽看吧~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 語音合成
    +關注

    關注

    2

    文章

    94

    瀏覽量

    16825
  • GitHub
    +關注

    關注

    3

    文章

    489

    瀏覽量

    18757

原文標題:基于Tacotron漢語語音合成的開源實踐

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    躍昉科技產(chǎn)品全面適配OpenClaw開源AI智能體框架

    近期,開源AI智能體框架OpenClaw在開發(fā)者社區(qū)迅速走紅。它讓AI從“對話”走向“執(zhí)行”——用戶只需設定目標,OpenClaw就能自主拆解任務、調用工具、持續(xù)運行直至完成。這范式被業(yè)界視為繼大語言模型之后的重要技術方向。
    的頭像 發(fā)表于 03-18 17:17 ?932次閱讀
    躍昉科技產(chǎn)品全面適配OpenClaw<b class='flag-5'>開源</b>AI智能體<b class='flag-5'>框架</b>

    瀚博半導體GPU云底座與體機方案支持OpenClaw開源AI智能體框架

    瀚博半導體,以創(chuàng)新的GPU云底座與體機方案,支持OpenClaw開源AI智能體框架,全天候運行AI智能體,在大幅提升數(shù)字生產(chǎn)力的同時保證數(shù)據(jù)安全與隱私安全,讓智能體真正落地千行百業(yè)。
    的頭像 發(fā)表于 03-11 13:39 ?537次閱讀
    瀚博半導體GPU云底座與<b class='flag-5'>一</b>體機方案支持OpenClaw<b class='flag-5'>開源</b>AI智能體<b class='flag-5'>框架</b>

    從網(wǎng)絡接口到 DMA,套面向工程師的 FPGA 網(wǎng)絡開發(fā)框架

    Development Kit,是由 Liberouter 研究團隊開發(fā)的框架,用于在 FPGA 加速卡上快速實現(xiàn)高性能網(wǎng)絡應用。它并不是
    的頭像 發(fā)表于 02-12 11:28 ?503次閱讀
    從網(wǎng)絡接口到 DMA,<b class='flag-5'>一</b>套面向工程師的 FPGA 網(wǎng)絡開發(fā)<b class='flag-5'>框架</b>

    本地智能家居系統(tǒng)ESPHome,實現(xiàn)遠程訪問調試

    ESPHome 是開源固件框架,支持通過 YAML 配置實現(xiàn)智能家居自動化,可本地部署并公網(wǎng)訪問,便于遠程開發(fā)。
    的頭像 發(fā)表于 12-30 14:48 ?1500次閱讀
    本地智能家居系統(tǒng)ESPHome,<b class='flag-5'>實現(xiàn)</b>遠程訪問調試

    如何在TensorFlow Lite Micro中添加自定義操作符(1)

    相信大家在部署嵌入式端的AI應用時,定使用過TensorFlow Lite Micro,以下簡稱TFLm。TFLm 是專為微控制器和嵌入式設備設計的輕量級機器學習推理框架,它通過模塊化的操作符系統(tǒng)
    的頭像 發(fā)表于 12-26 10:34 ?5696次閱讀

    人工智能AI必備的5款開源軟件推薦!

    在技術浪潮洶涌的當下,越來越多的企業(yè)與開發(fā)者開始意識到:“開源”已經(jīng)不只是口號,而是創(chuàng)新的源泉。 從算法研究到智能應用落地,無數(shù)項目的起點,都是一個個免費的
    的頭像 發(fā)表于 11-19 15:35 ?846次閱讀
    人工智能AI必備的5款<b class='flag-5'>開源</b>軟件推薦!

    開源鴻蒙技術大會2025丨開源鴻蒙應用開發(fā)再提速,跨平臺框架PMC(籌)正式啟動孵化

    9月27日,開源鴻蒙技術大會2025在長沙國際會議中心盛大舉辦。大會現(xiàn)場,開源鴻蒙跨平臺框架PMC(籌)正式啟動孵化,標志著開源鴻蒙在應用開發(fā)基礎設施建設層面迎來重大里程碑,也為整個行
    的頭像 發(fā)表于 11-10 18:15 ?1567次閱讀
    <b class='flag-5'>開源</b>鴻蒙技術大會2025丨<b class='flag-5'>開源</b>鴻蒙應用開發(fā)再提速,跨平臺<b class='flag-5'>框架</b>PMC(籌)正式啟動孵化

    NVIDIA助力新代機器人開發(fā)開源框架

    今年的 ROSCon 在新加坡舉辦,并于 10 月 29 日順利閉幕。大會吸引了全球機器人操作系統(tǒng)(ROS)領域開發(fā)者的關注。ROS 是目前全球應用最廣泛的機器人開發(fā)開源框架。
    的頭像 發(fā)表于 11-06 11:55 ?1172次閱讀

    請問STM32如何移植Audio框架

    最近在學習音頻解碼,想用下Audio框架。 1、這個該如何移植到自己創(chuàng)建的BSP并對接到device框架中?看了官方移植文檔沒有對沒有對該部分的描述。 2、我只想實現(xiàn)
    發(fā)表于 09-25 07:17

    【上海晶珩睿莓1開發(fā)板試用體驗】TensorFlow-Lite物體歸類(classify)

    用。 OpenCV庫編譯成功之后,就可以新建線程進行TensorFlow-Lite物體歸類了,這里我直接使用現(xiàn)成的pb和pbtxt文件,具體內(nèi)容不贅述,來看看識別效果:
    發(fā)表于 09-12 22:43

    知乎開源“智能預渲染框架” 幾行代碼實現(xiàn)鴻蒙應用頁面“秒開”

    近日,知乎在Gitee平臺開源了其自研的鴻蒙“智能預渲染框架”,并將該框架的Har包上架到OpenHarmony三方庫中心倉。該框架在鴻蒙平臺首創(chuàng)“智能預渲染”技術,旨在破解應用復雜頁
    的頭像 發(fā)表于 08-29 14:32 ?699次閱讀
    知乎<b class='flag-5'>開源</b>“智能預渲染<b class='flag-5'>框架</b>” 幾行代碼<b class='flag-5'>實現(xiàn)</b>鴻蒙應用頁面“秒開”

    開放原子開源基金會發(fā)布150余開源項目應用案例

    。案例覆蓋電力、通信、醫(yī)療、教育、金融、交通等10余關系國計民生的關鍵行業(yè),彰顯了開源技術在促進產(chǎn)業(yè)升級、行業(yè)創(chuàng)新方面的強大動力,標志著開源技術實現(xiàn)從代碼研發(fā)到千行百業(yè)規(guī)模化應用的重
    的頭像 發(fā)表于 07-28 17:10 ?1276次閱讀

    100%開源!行業(yè)首個企業(yè)級智能體

    近日,京東云正式開源JoyAgent智能體。作為行業(yè)首個100%開源的企業(yè)級智能體,實現(xiàn)了產(chǎn)品級開源,包括前端、后端、框架、引擎和核心子智能
    的頭像 發(fā)表于 07-26 09:26 ?1287次閱讀

    TuyaOpen開源框架+地瓜RDK X5開發(fā)板=激光雷達避障、人體追蹤的智能小車

    OriginBot是款智能機器人開源套件,搭載地瓜RDKX5開發(fā)板,通過完全開源的TuyaOpen開發(fā)框架(點擊查看TuyaOpen能開發(fā)哪些AI硬件?),能夠
    的頭像 發(fā)表于 06-26 18:35 ?2029次閱讀
    TuyaOpen<b class='flag-5'>開源</b><b class='flag-5'>框架</b>+地瓜RDK X5開發(fā)板=激光雷達避障、人體追蹤的智能小車

    KaihongOS筆記本電腦開發(fā)實戰(zhàn)第九節(jié):全功能TypeC驅動框架適配

    連接、全智能時代搭建智能終端設備操作系統(tǒng)的框架和平臺,促進萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。 KaihongOS: 深開鴻基于開源鴻蒙打造的國產(chǎn)化操作系統(tǒng),是
    發(fā)表于 05-19 18:29