如何讓神經聲碼器高效地用於序列到序列聲學模型

2021-01-08 電子發燒友
如何讓神經聲碼器高效地用於序列到序列聲學模型

IT創事記 發表於 2021-01-07 16:01:32

往往在放下手機之後你才會意識到,電話那頭的客服其實是個機器人;或者準確地說,是「一位」智能客服。

沒錯,今天越來越多的工作正在被交給人工智慧技術去完成,文本轉語音(TTS,Text To Speech)就是其中非常成熟的一部分。它的發展,決定了今天我們聽到的許多「人聲」,是如此地逼真,以至於和真人發聲無異。

除了我們接觸最多的智能客服,智能家居中的語音助手、可以服務聽障人士的無障礙播報,甚至是新聞播報和有聲朗讀等服務,事實上都基於TTS這項技術。它是人機對話的一部分——簡單地說,就是讓機器說人話。

它被稱為同時運用語言學和心理學的傑出之作。不過在今天,當我們稱讚它的傑出時,更多的是因為它在在線語音生成中表現出的高效。

要提升語音合成效率當然不是一件容易的事。這裡的關鍵是如何讓神經聲碼器高效地用於序列到序列聲學模型,來提高TTS質量。

科學家已經開發出了很多這樣的神經網絡聲碼器,例如WaveNet、Parallel WaveNet、WaveRNN、LPCNet 和 Multiband WaveRNN等,它們各有千秋。

WaveNet聲碼器可以生成高保真音頻,但在計算上它那巨大的複雜性,限制了它在實時服務中的部署;

LPCNet聲碼器利用WaveRNN架構中語音信號處理的線性預測特性,可在單個處理器內核上生成超實時的高質量語音;但可惜,這對在線語音生成任務而言仍不夠高效。

科學家們希望TTS能夠在和人的「交流」中,達到讓人無感的順暢——不僅是語調上的熱情、親切,或冷靜;更要「毫無」延遲。

新的突破出現在騰訊。騰訊 AI Lab(人工智慧實驗室)和雲小微目前已經率先開發出了一款基於WaveRNN多頻帶線性預測的全新神經聲碼器FeatherWave。經過測試,這款高效高保真神經聲碼器可以幫助用戶顯著提高語音合成效率。

英特爾的工程團隊也參與到了這項開發工作中。他們把面向第三代英特爾至強可擴展處理器所做的優化進行了全面整合,並採用了英特爾深度學習加速技術(英特爾 DL Boost)中全新集成的 16 位 Brain Floating Point (bfloat16) 功能。

bfloat16是一個精簡的數據格式,與如今的32位浮點數(FP32)相比,bfloat16隻通過一半的比特數且僅需對軟體做出很小程度的修改,就可達到與FP32同等水平的模型精度;與半浮點精度 (FP16) 相比,它可為深度學習工作負載提供更大的動態範圍;與此同時,它無需使用校準數據進行量化/去量化操作,因此比 INT8 更方便。這些優勢不僅讓它進一步提升了模型推理能力,還讓它能為模型訓練提供支持。

事實上,英特爾至強可擴展處理器本就是專為運行複雜的人工智慧工作負載而設計的。藉助英特爾深度學習加速技術,英特爾志強可擴展處理器將嵌入式 AI 性能提升至新的高度。目前,此種處理器現已支持英特爾高級矢量擴展 512 技術(英特爾AVX-512 技術)和矢量神經網絡指令 (VNNI)。

在騰訊推出的全新神經聲碼器FeatherWave 聲碼器中,就應用了這些優化技術。

FeatherWave 聲碼器框圖

利用英特爾AVX-512技術和bfloat16指令,騰訊的科學家們確保了GRU模塊和Dense運算符中粗略部分/精細部分的所有SGEMV計算都使用512位矢量進行矢量化,並採用bfloat16點積指令;對於按元素逐個加/乘等運算以及其他非線性激活,都使用最新的英特爾AVX-512 指令運行。

在最終都性能測試中,通過優化,相同質量水平(MOS4.5)的文本轉語音速度比FP32提升了高達1.54倍。

此外,騰訊還以 GAN 和 Parallel WaveNet (PWaveNet)為基礎,推出了一種改進後的模型,並基於第三代英特爾至強可擴展處理器對模型性能進行了優化,最終使性能與採用FP32相比提升了高達1.89倍,同時質量水平仍保持不變 (MOS4.4)。

騰訊在TTS領域的進展顯示出了人工智慧領域的一個趨勢,那就是科學家們越來越多開始利用英特爾深度學習加速技術在CPU平臺上開展工作。

就像騰訊在針對TTS的探索中獲得了性能提升那樣,第二代和第三代英特爾至強可擴展處理器在集成了加速技術後,已經顯著提升了人工智慧工作負載的性能。

在更廣泛的領域內,我們已經能夠清楚地看到這種變化——在效率表現上,由於針對常見人工智慧軟體框架,如TensorFlow和PyTorch、庫和工具所做的優化,CPU平臺可以幫助保持較高的性能功耗比和性價比。

尤其是擴展性上,用戶在設計系統時可以利用如英特爾乙太網700系列,和英特爾傲騰內存存儲技術,來優化網絡和內存配置。這樣一來,他們就可以在充分利用現有硬體投資的情況下,輕鬆擴展人工智慧訓練的工作負載,獲得更高的吞吐量,甚至處理巨大的數據集。

不止於處理器平臺本身,英特爾目前在面向人工智慧優化的軟體,以及市場就緒型人工智慧解決方案兩個維度,都建立起了差異化的市場優勢。

例如在軟體方面,英特爾2019年2月進行的 OpenVINO/ResNet50 INT8 性能測試顯示,使用 OpenVINO或TensorFlow和英特爾深度學習加速技術時,人工智慧推理性能可提高多達 3.75 倍。

今天,英特爾已經攜手解決方案提供商,構建了一系列的精選解決方案。這些方案預先進行了配置,並對工作負載進行了優化。這就包括了如基於人工智慧推理的英特爾精選解決方案,以及面向在面向在Apache Spark上運行的BigDL的英特爾精選解決方案等。

這些變化和方案的出現對於那些希望能從整體業務視角,去觀察人工智慧進展的機構或企業的管理層顯然也很有意義——如果只通過優化,就能在一個通用平臺上完成所有人工智慧的探索和落地,那麼投資的價值就能夠實現最大化。

許多企業做出了這樣的選擇,GE醫療就是其中一家。作為GE集團旗下的醫療健康業務部門,它構建了一個人工智慧醫學影像部署架構。

通過採用英特爾至強可擴展處理器,和英特爾固態盤,以及多項英特爾關鍵技術——例如英特爾深度學習開發工具包,和面向深度神經網絡的英特爾數學核心函數庫等;GE醫療收穫了未曾預料到的成果:

這一解決方案最終比基礎解決方案的推理速度提升了多達14倍,且超過了GE原定推理目標5.9倍。

責任編輯:xj

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 如何使用XGBoost模型進行時間序列預測
    XGBoost也可以被用於時間序列預測,儘管它需要將時間序列數據集先轉換成監督學習問題。它需要用到一種被稱為前進式驗證的特殊方法來評估模型,因為使用k折驗證來評估模型容易導致偏向樂觀的結果。本教程中,你將探索如何為時間序列預測開發一個XGBoost模型。
  • 阿里雲高效基因序列檢索助力新冠肺炎病毒序列快速分析
    簡介: 阿里雲高效基因序列檢索助力新冠肺炎病毒序列快速分析AnalyticDB for MySQL是雲端託管的PB級高並發低延時數據倉庫,通過AnalyticDB for MySQL向量檢索功能構建基因檢索系統,支持毫秒級針對10億級別的向量數據進行查詢分析,更加快速、高效地為新冠肺炎病毒防控、研發治療藥物以及相關疫苗提供幫助。
  • 時間序列模型
    好,YY結束,現實中的我們還是得通過不斷的分(連)析(蒙)研(帶)究(猜),才能在充滿演技的股市中生存。在前面的文章中,我們討論了大體的交易框架,接下來我們需要討論,在沒有藍胖子的時間機器的情況下,如何從時間中挖掘信息,來指導我們的交易。
  • 從時間序列ariam模型到Prophet模型的應用
    了解完數據的特點,我首先想到的是用時間序列裡的arima模型,把2017年1月,2018年1月的數據作為訓練集,2019年1月的數據作為測試集,跑入模型,預測2020年1月的數據,同理用2017年2月,2018年2月的數據作為訓練集,2019年2月的數據作為測試集,預測2020年2月的數據,用這個思路分別來預測2020年1月,2月,3月,4月,5月,6月的數據
  • 阿里雲推出高效病毒基因序列檢索功能,它的底層邏輯原來是這樣的
    到目前為止,疫情使得50多個國家停擺,全世界範圍內造成了數千億美元的經濟損失。阿里雲提供高效基因序列檢索助力冠狀病毒序列分析用於疫情防治。對於當下疫情,基因序列分析技術主要用在一下幾個方面。第一,用在新冠狀病毒的溯源和分析,可以幫助人們找到病毒宿主,做好有效的防範。
  • 序列模型的實現細節
    但由於序列長度不一且變化範圍較大,為保證效率和穩定性,有許多實現上的細節需要考慮。同樣的理論在不同實現下效果往往會有神秘的差異,甚至會出現不能收斂的情況。本文總結了一些用 Tensorflow 實現序列模型的一些做法,並分析了效率和精度上的權衡。本文假設讀者已經有深度學習在自然語言處理應用上的基本知識,並用 Tensorflow 實現過一些序列模型。
  • 時間序列模型(三)——馬爾可夫模型
    很多教材都會單獨介紹馬爾可夫模型,但它是一種時間序列模型,可以用時間序列模型的思維來學習,並和其它時間序列模型做比較。       狀態空間指的是序列數據的狀態。(最少要有兩種狀態)理論上來說,這個空間可以是離散的,或者是連續的。本文主要討論最重要的離散狀態的情況。
  • 如何獲取蛋白序列並進行序列比對?
    今天我們就來說一下具體的方法,先介紹蛋白序列的獲取和序列比對。以Sox家族的蛋白為例,我們首先通過Uniprot資料庫(http://www.uniprot.org/)獲取蛋白序列:這是打開後是序列,我們看到包括了Sox9,Sox2,Sox11等蛋白的序列,這樣我們就拿到Sox家族的各條序列了,接來下我們進行序列比對。
  • 如何優雅地用TensorFlow預測時間序列:TFTS庫詳細教程
    主要包含數據讀入、AR模型的訓練、LSTM模型的訓練三部分內容。內容翔實有趣,量子位轉載分享給大家。前言如何用TensorFlow結合LSTM來做時間序列預測其實是一個很老的話題,然而卻一直沒有得到比較好的解決。
  • 特徵工程自動化 時間序列的數據是關鍵
    【IT168 資訊】今天介紹一個通用框架,用於開發時間序列模型,生成特徵並對數據進行預處理,並探索使這一過程自動化的潛力,以便將先進的機器學習算法應用於幾乎所有的時間序列問題。目前大多數機器學習算法都不具有時間意識,不容易應用於時間序列和預測問題。
  • 時間序列的LSTM模型預測——基於Keras
    一、問題背景    現實生活中,在一系列時間點上觀測數據是司空見慣的活動,在農業、商業、氣象軍事和醫療等研究領域都包含大量的時間序列數據。時間序列的預測指的是基於序列的歷史數據,以及可能對結果產生影響的其他相關序列,對序列未來的可能取值做出預測。
  • 時間序列分析(三):平穩時間序列分析之數據準備
    理論研究表明,任意平穩時間序列都可以由ARMA過程(包括AR過程、MA過程和混合過程)近似表示,並且通過ARMA模型可以對序列作出比較精確的預測。Box-Jenkins建模方法是關於如何分析平穩時間序列、建立ARMA模型以及進行預測的方法,它也是目前比較流行的一種建模方法,建模過程基本可以分為三步,如下:模型識別:考察時間序列特徵,進行模型識別,辨識出有價值且參數簡約的模型子類,如AR(3)、ARMA(2,2)等。
  • 如何進行基因組序列比對?
    、比對軟體、SAM文件拿到人基因組全外顯子illumina下機數據fastq文件之後,如何進行後續的變異檢測呢?、詳細信息及下載地址已經知道啦,那麼我們來看看利用什麼軟體或算法來將測序數據比對到31億鹼基序列上呢?
  • 時間序列基本概念
    理論研究表明,任意平穩時間序列都可以由ARMA過程(包括AR過程、MA過程和混合過程)近似表示,並且通過ARMA模型可以對序列作出比較精確的預測。Box-Jenkins建模方法是關於如何分析平穩時間序列、建立ARMA模型以及進行預測的方法,它也是目前比較流行的一種建模方法,建模過程基本可以分為三步,如下:模型識別:考察時間序列特徵,進行模型識別,辨識出有價值且參數簡約的模型子類,如AR(3)、ARMA(2,2)等。
  • SAS時間序列模型預測未來航班數量
    時間序列模型利用歷史資料進行延伸預測,也稱歷史引伸預測法。
  • r語言檢驗時間序列平穩性_r中時間序列平穩怎麼檢驗 - CSDN
    ,我們可以看到英國國王的死亡年齡似乎已經從大約55歲降至大約38歲在最後的20位國王中,然後在第40位國王在時間序列的統治結束之後增加到大約73歲。我們看到估計的趨勢分量顯示從1947年的大約24小幅下降到1948年的大約22小幅下降,隨後從1959年開始穩步增加到大約27。季節性調整如果您有可以使用附加模型描述的季節性時間序列,則可以通過估計季節性成分來季節性地​​調整時間序列,並從原始時間序列中減去估計的季節性成分。
  • 時間序列深度學習:狀態 LSTM 模型預測太陽黑子(上)
    由於數據科學機器學習和深度學習的發展,時間序列預測在預測準確性方面取得了顯著進展。隨著這些 ML/DL 工具的發展,企業和金融機構現在可以通過應用這些新技術來解決舊問題,從而更好地進行預測。在本文中,我們展示了使用稱為 LSTM(長短期記憶)的特殊類型深度學習模型,該模型對涉及自相關性的序列預測問題很有用。我們分析了一個名為「太陽黑子」的著名歷史數據集(太陽黑子是指太陽表面形成黑點的太陽現象)。我們將展示如何使用 LSTM 模型預測未來 10 年的太陽黑子數量。
  • 四分之三的DNA序列如何被開啟的?Nature新論文報導人工智慧獲得的重要突破
    眾所周知,將近25%的基因被類似於TATAAA的序列(稱為「 TATA框」)轉錄,那其它75%的基因是如何開啟的呢?這依然是一個謎。最新一項研究中,加州大學聖地牙哥分校的研究人員確定了一種DNA激活碼,他們稱其為下遊核心啟動子區域(downstream core promoter region,DPR),這一發現最終可用於控制生物技術和生物醫學應用中的基因激活。相關成果公布在9月9日的Nature雜誌上。
  • 從字符級的語言建模開始,了解語言模型與序列建模的基本概念
    你有沒有想過 Gmail 自動回復是如何進行的?或者手機在你輸入文本時如何對下一個詞提出建議?生成文本序列的通常方式是訓練模型在給定所有先前詞/字符的條件下預測下一個詞/字符出現的概率。此類模型叫作統計語言模型,這種模型會嘗試捕捉訓練文本的統計結構,本文從字符級語言模型和名字預測出發向讀者介紹了語言建模的核心概念。
  • 這六大方法如何讓Transformer輕鬆應對高難度長文本序列?
    在處理長度為 n 的序列時,其 O(n2) 的時間複雜度會使得原始的 Transformer 模型難以處理長文本序列。在過去的兩年裡,已經出現了多種有效的方法來應對多頭注意力機制的複雜度問題,本文將重點討論在模型規模方面很有發展前景的方法。