語音人工智能用于各種應(yīng)用,包括授權(quán)人工智能的呼叫中心、虛擬助理的語音接口以及視頻會議中的實時字幕。語音人工智能包括自動語音識別( ASR )和文本語音轉(zhuǎn)換( TTS )。 ASR 管道接收原始音頻并將其轉(zhuǎn)換為文本, TTS 管道接收文本并將其轉(zhuǎn)換為音頻。
開發(fā)和運行這些實時語音人工智能服務(wù)是一項復(fù)雜而艱巨的任務(wù)。構(gòu)建語音 AI 應(yīng)用程序需要數(shù)十萬小時的音頻數(shù)據(jù)、基于特定用例構(gòu)建和自定義模型的工具,以及可擴展的部署支持。它還意味著實時運行,與用戶進行自然交互的時間遠低于 300 毫秒。 NVIDIA Riva 簡化了開發(fā)語音 AI 服務(wù)的端到端流程,并為類人交互提供實時性能。
Riva SDK
NVIDIA Riva 是用于開發(fā)語音 AI 應(yīng)用程序的 GPU 加速 SDK 。 Riva 旨在幫助您輕松快速地訪問對話 AI 功能。只需幾個命令,您就可以通過 API 操作訪問高性能服務(wù)并嘗試演示。
圖 1 . Riva 構(gòu)建語音應(yīng)用程序的工作流
Riva SDK 包括 pretrained speech and language models 、 NVIDIA TAO Toolkit ,用于在自定義數(shù)據(jù)集上微調(diào)這些模型,以及用于語音識別、語言理解和語音合成的優(yōu)化端到端技能。
使用 Riva ,您可以輕松地對數(shù)據(jù)上的最新模型進行微調(diào),以更深入地了解其特定上下文。優(yōu)化推理以提供運行時間為 150 毫秒( ms )的實時服務(wù),而在 CPU 純平臺上需要 25 秒。
特定于任務(wù)的 AI 服務(wù)和 gRPC 端點提供現(xiàn)成的高性能 ASR 、 NLP 和 TTS 。所有這些人工智能服務(wù)都經(jīng)過數(shù)千小時的公共和內(nèi)部數(shù)據(jù)集培訓(xùn),以達到高精度。您可以開始使用預(yù)訓(xùn)練的模型,或者使用自己的數(shù)據(jù)集對其進行微調(diào),以進一步提高模型性能。
Riva 使用 NVIDIA Triton Inference Server 為多個模型提供服務(wù),以實現(xiàn)高效、穩(wěn)健的資源分配,并在高吞吐量、低延遲和高精度方面實現(xiàn)高性能。
Riva 技能概述
Riva 為實時轉(zhuǎn)錄和虛擬助理等用例提供高度優(yōu)化的語音識別和語音合成服務(wù)。語音識別技能在各種真實世界、特定領(lǐng)域的數(shù)據(jù)集上進行培訓(xùn)和評估。它包括來自電信、播客和醫(yī)療保健的詞匯,以在生產(chǎn)用例中提供世界級的準確性。
與 NVIDIA V100 GPU 上的 Tacotron 2 和 WaveGlow 模型相比, Riva 文本到語音或語音合成技能可生成類似人類的語音,并使用非自回歸模型在 NVIDIA A100 GPU 上提供 12 倍的性能。此外,該服務(wù)使您能夠為每個品牌和虛擬助理創(chuàng)建一個自然定制的聲音,每天 30 分鐘的演員數(shù)據(jù)。
圖 2 . Riva 服務(wù)能力
為了充分利用 GPU 的計算能力, Riva 基于 NVIDIA Triton 推理服務(wù)器,為神經(jīng)網(wǎng)絡(luò)和集成管道提供服務(wù),以便與 NVIDIA TensorRT 高效運行。
Riva 服務(wù)通過 gRPC 端點可訪問的 API 操作公開,這些操作隱藏了所有復(fù)雜性。圖 3 顯示了系統(tǒng)的服務(wù)器端。 gRPC API 操作由運行在 Docker 容器中的 API 服務(wù)器公開。他們負責(zé)處理所有語音和 NLP 傳入和傳出數(shù)據(jù)。
圖 3 . Riva 服務(wù)管線
API 服務(wù)器向 NVIDIA Triton 發(fā)送推斷請求并接收結(jié)果。
NVIDIA Triton 是后端服務(wù)器,可同時處理多個 GPU 上的多個神經(jīng)網(wǎng)絡(luò)或集成管道的多個推理請求。
對于會話 AI 應(yīng)用程序,將延遲保持在給定閾值以下至關(guān)重要。這種延遲要求轉(zhuǎn)化為推斷請求一到達就執(zhí)行。要使 GPU 飽和并提高性能,必須增加批大小并延遲推理執(zhí)行,直到收到更多請求并形成更大的批。
NVIDIA Triton 還負責(zé)在一個請求和另一個請求之間切換網(wǎng)絡(luò)的上下文。
Riva 可以通過從 NGC 下載適當?shù)哪P秃腿萜鞯暮唵文_本直接安裝在裸機上,也可以通過 Helm chart 將其部署在 Kubernetes 上。
下面簡要介紹一下如何與 Python 交互。 Riva 接口通過簡單的 Python API 操作,使客戶端與 Riva 服務(wù)器的通信更加容易。例如,下面介紹如何通過三個步驟創(chuàng)建對現(xiàn)有 TTS Riva 服務(wù)的請求。
首先,導(dǎo)入 Riva API :
import src.riva_proto.riva_tts_pb2 as rtts
import src.riva_proto.riva_tts_pb2_grpc as rtts_srv
import src.riva_proto.riva_audio_pb2 as ri
接下來,創(chuàng)建到 Riva 端點的 gRPC 通道:
channel = grpc.insecure_channel('localhost:50051')
riva_tts = rtts_srv.RivaSpeechSynthesisStub(channel)
然后,創(chuàng)建一個 TTS 請求:
req = rtts.SynthesizeSpeechRequest()
req.text = "We know what we are, but not what we may be?"
req.language_code = "en-US" req.encoding = ri.AudioEncoding.LINEAR_PCM req.sample_rate_hz = 22050 req.voice_name = "ljspeech" resp = riva_tts.Synthesize(req)
audio_samples = np.frombuffer(resp.audio, dtype=np.float32)
使用數(shù)據(jù)自定義模型
使用 NVIDIA TAO Toolkit ,您可以在 Riva 中使用定制的訓(xùn)練模型(圖 4 )。 NVIDIA TAO Toolkit 是一種無編碼工具,用于在特定于域的數(shù)據(jù)集上微調(diào)模型。
圖 4 。 NVIDIA TAO 工具包管道
例如,要進一步提高 ASR 轉(zhuǎn)錄文本的易讀性和準確性,請向 ASR 系統(tǒng)添加自定義標點符號和大小寫模型,以生成沒有這些特征的文本。
從預(yù)訓(xùn)練的 BERT 模型開始,第一步是準備數(shù)據(jù)集。對于培訓(xùn)數(shù)據(jù)集中的每個單詞,目標是預(yù)測以下內(nèi)容:
單詞后面的標點符號。
這個詞是否應(yīng)該大寫。
數(shù)據(jù)集準備就緒后,下一步是通過運行先前提供的腳本進行培訓(xùn)。完成培訓(xùn)并達到所需的最終精度后,使用附帶的腳本為 NVIDIA Triton 創(chuàng)建模型存儲庫。
NVIDIA Riva Speech Skills 文檔包含有關(guān)如何訓(xùn)練或微調(diào)其他模型的更多詳細信息。這篇文章只展示了使用 TAO 工具包進行定制的眾多可能性中的一種。
在 Riva 中部署模型
Riva 是為大規(guī)模對話 AI 而設(shè)計的。為了幫助您在不同的服務(wù)器上高效、可靠地為模型提供服務(wù), NVIDIA 使用 Helm 圖表提供了按鈕式模型部署(圖 5 )。
圖 5 。通過修改可用的舵圖,可以在 Riva 中部署模型
NGC catalog 中提供的舵圖配置可以針對自定義用例進行修改。您可以更改與要部署的模型、存儲它們的位置以及如何公開服務(wù)相關(guān)的設(shè)置。
結(jié)論
Riva 是 NVIDIA Developer Program 成員的公開測試版。對于您的實時轉(zhuǎn)錄、虛擬助理或自定義語音實現(xiàn), Riva 將支持您的開發(fā)。如果您正在大規(guī)模部署, Riva Enterprise 將為您大規(guī)模部署,并包括 AI 專家的支持。
關(guān)于作者
Davide Onofrio 是 NVIDIA 的高級深度學(xué)習(xí)軟件技術(shù)營銷工程師。他在 NVIDIA 專注于深度學(xué)習(xí)技術(shù)開發(fā)人員關(guān)注內(nèi)容的開發(fā)和演示。戴維德在生物特征識別、虛擬現(xiàn)實和汽車行業(yè)擔(dān)任計算機視覺和機器學(xué)習(xí)工程師已有多年經(jīng)驗。他的教育背景包括米蘭理工學(xué)院的信號處理博士學(xué)位。
Vinh Nguyen 是一位深度學(xué)習(xí)的工程師和數(shù)據(jù)科學(xué)家,發(fā)表了 50 多篇科學(xué)文章,引文超過 2500 篇。在 NVIDIA ,他的工作涉及廣泛的深度學(xué)習(xí)和人工智能應(yīng)用,包括語音、語言和視覺處理以及推薦系統(tǒng)。
Siddharth Sharma 是NVIDIA 加速計算的高級技術(shù)營銷經(jīng)理。在加入NVIDIA 之前, Siddharth 是 Mathworks Simulink 和 Stateflow 的產(chǎn)品營銷經(jīng)理,與汽車和航空航天公司密切合作,采用基于模型的設(shè)計來創(chuàng)建控制軟件。
Alex Qi 是英偉達 AI 軟件集團的產(chǎn)品經(jīng)理。她的重點是對話 AI 框架( Riva )和多媒體流 AI / ML ( Maxine )的 AI 軟件和應(yīng)用程序。在加入 NVIDIA 之前,她在領(lǐng)導(dǎo)技術(shù)和工程組織中各種角色的具有挑戰(zhàn)性的技術(shù)項目方面擁有豐富的經(jīng)驗,如數(shù)據(jù)科學(xué)家、計算建模和設(shè)計工程。 Alex 擁有麻省理工學(xué)院的雙學(xué)位碩士學(xué)位:麻省理工學(xué)院斯隆管理學(xué)院的 MBA 學(xué)位,以及工程機械工程學(xué)院的理學(xué)碩士學(xué)位,她在該學(xué)院主要研究機器人技術(shù)和人工智能。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5057瀏覽量
103380 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9262瀏覽量
85766 -
人工智能
+關(guān)注
關(guān)注
1792文章
47525瀏覽量
239256
發(fā)布評論請先 登錄
相關(guān)推薦
評論