自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用 NVIDIA Riva 快速部署企業(yè)級(jí)中文語(yǔ)音 AI 服務(wù)并進(jìn)行優(yōu)化加速

人工智能
本文將分享如何使用 NVIDIA Riva 快速部署 Speech AI 服務(wù)。Riva Skills 是一個(gè)高度可定制化的工具,它利用 GPU 加速實(shí)時(shí)流式的語(yǔ)音識(shí)別和語(yǔ)音合成,并且能夠同時(shí)處理成千上萬(wàn)個(gè)并發(fā)請(qǐng)求。它支持多種部署平臺(tái),包括本地、云端和端側(cè)。

一、Riva 概覽

1. Overview

圖片

Riva 是 NVIDIA 推出的一款 SDK,用于實(shí)時(shí)的 Speech AI 服務(wù)。它是一個(gè)高度可定制的工具,并且使用 GPU 進(jìn)行加速。NGC 上提供了很多預(yù)訓(xùn)練好的模型,這些模型開箱即用,可以直接使用 Riva 提供的 ASR 和 TTS 解決方案進(jìn)行部署。

為了滿足特定領(lǐng)域的需求或者進(jìn)行定制化功能的開發(fā),用戶也可以使用 NeMo 對(duì)這些模型進(jìn)行重新訓(xùn)練或微調(diào)。從而進(jìn)一步提升模型的性能,使其更加適應(yīng)用戶的需求。

Riva Skills 是一個(gè)高度可定制化的工具,它利用 GPU 加速實(shí)時(shí)流式的語(yǔ)音識(shí)別和語(yǔ)音合成,并且能夠同時(shí)處理成千上萬(wàn)個(gè)并發(fā)請(qǐng)求。它支持多種部署平臺(tái),包括本地、云端和端側(cè)。

2. Riva ASR

圖片

在語(yǔ)音識(shí)別方面,Riva使用了準(zhǔn)確度很高的 SOTA 模型,比如 Citrinet、Conformer 和 NeMo 自研的 FastConformer 等。目前,Riva 支持超過(guò) 10 種單語(yǔ)言模型,并且還支持多語(yǔ)種的語(yǔ)音識(shí)別,包括英語(yǔ)-西班牙語(yǔ)、英語(yǔ)-中文和英語(yǔ)-日語(yǔ)等的多語(yǔ)言語(yǔ)音識(shí)別。

通過(guò)定制化的功能,可以進(jìn)一步提升模型的準(zhǔn)確率。例如,針對(duì)特定行業(yè)術(shù)語(yǔ)、口音或方言的支持,以及對(duì)噪聲環(huán)境的定制化處理,都可以幫助提高語(yǔ)音識(shí)別的性能。

Riva 的整體框架能夠應(yīng)用于多種場(chǎng)景,例如客服和會(huì)議系統(tǒng)等。除了通用場(chǎng)景外,Riva 的服務(wù)還可以根據(jù)不同行業(yè)的需求進(jìn)行定制化,比如 CSP、教育、金融等行業(yè)。

3. ASR Pipeline & Customization

在 Riva ASR 的整個(gè)流程中,有一些可定制化的模塊,這些模塊可以按照難度分為三類。

圖片

首先,橙色框中是在 inference 過(guò)程中,在客戶端即可做的定制化。比如支持熱詞功能,通過(guò)在 inference 過(guò)程中添加產(chǎn)品名稱或?qū)S忻~,使語(yǔ)音模型能夠更準(zhǔn)確地識(shí)別這些特定的詞匯。這一功能是 Riva 本身就支持的,在不重新訓(xùn)練模型或重新啟動(dòng) Riva 服務(wù)器的情況下即可完成定制化。

紫色框中是部署時(shí)可以進(jìn)行的一些定制化。例如,在 Riva 的流式識(shí)別中,提供了延遲優(yōu)化或吞吐優(yōu)化兩種模式,可以根據(jù)業(yè)務(wù)需求進(jìn)行選擇,以獲得更好的性能表現(xiàn)。此外,在部署過(guò)程中,還可以進(jìn)行發(fā)音詞典的定制化。通過(guò)定制化發(fā)音詞典,可以確保特定術(shù)語(yǔ)、名稱或行業(yè)術(shù)語(yǔ)的正確發(fā)音,并提高語(yǔ)音識(shí)別的準(zhǔn)確性。

綠色框中是訓(xùn)練過(guò)程中可以進(jìn)行的定制化,即在服務(wù)器端進(jìn)行的訓(xùn)練和調(diào)整。比如在訓(xùn)練開始的文本正則化階段,可以加入一些對(duì)特定文本的處理。另外,可以微調(diào)或重新訓(xùn)練聲學(xué)模型,以解決特定業(yè)務(wù)場(chǎng)景下的諸如口音、噪聲等問題,使模型更加魯棒。還可以重新訓(xùn)練語(yǔ)言模型、微調(diào)標(biāo)點(diǎn)模型、逆文本正則化等。

以上就是 Riva 可以定制化的部分。

4. Riva TTS

圖片

Riva TTS 流程如上圖中右側(cè)所示,它包含以下幾個(gè)模塊:

  • 第一步是文本正則化。
  • 第二步是 G2P,將文本的基本單位轉(zhuǎn)換為發(fā)音或口語(yǔ)的基本單位。例如,將單詞轉(zhuǎn)換為音素。
  • 第三步是頻譜合成,將文本轉(zhuǎn)換為聲學(xué)頻譜。
  • 第四步是音頻合成,也稱為 vocoder。在這一步中,將前一步得到的頻譜轉(zhuǎn)換為音頻。

上圖中,以合成"Hello World"這句話為例,首先進(jìn)入文本正則化模塊,對(duì)文本進(jìn)行標(biāo)準(zhǔn)化處理,例如將大小寫規(guī)范化。接著進(jìn)入 G2P 模塊,將文本轉(zhuǎn)換為音素序列。之后進(jìn)入頻譜合成模塊,通過(guò)神經(jīng)網(wǎng)絡(luò)訓(xùn)練,得到頻譜。最后進(jìn)入 vocoder,將頻譜轉(zhuǎn)換為最終的聲音。

Riva 提供流式 TTS 支持,使用了目前流行的 FastPitch 和 HiFi-GAN 模型的組合。目前支持多種語(yǔ)言,包括英語(yǔ)、中文普通話、西班牙語(yǔ)、意大利語(yǔ)和德語(yǔ)等。

5. TTS Pipeline & Customization

圖片

在 Riva 的 TTS 流程中,為定制化提供了兩種方式。第一種方式是使用語(yǔ)音合成標(biāo)記語(yǔ)言(SSML),這是一種比較容易的定制化方式。通過(guò)一些配置,可以調(diào)整發(fā)音的音調(diào)、語(yǔ)速、音量等。通常情況下,如果想改變特定詞的發(fā)音,會(huì)選擇這種方式。

另一種方式是進(jìn)行微調(diào)或重新訓(xùn)練 FastPitch 或 HiFi-GAN 模型??梢允褂米约旱奶囟〝?shù)據(jù)對(duì)這兩個(gè)模型進(jìn)行微調(diào)或重新訓(xùn)練。

二、中文語(yǔ)音識(shí)別模型的最新更新

1. Overview

圖片

在過(guò)去的一年中,Riva 對(duì)中文模型進(jìn)行了一些更新和改進(jìn)。接下來(lái)介紹其中一些重要的更新。

首先,持續(xù)優(yōu)化中文語(yǔ)音識(shí)別(ASR)模型。可以在相應(yīng)的鏈接中找到最新的 ASR 模型。

其次,引入了統(tǒng)一模型(Unified Model)的支持。這意味著在一次推理中,可以同時(shí)做語(yǔ)音識(shí)別標(biāo)點(diǎn)符號(hào)預(yù)測(cè)。

第三,增加了中英文混合模型的支持。這意味著模型可以同時(shí)處理中文和英文的語(yǔ)音輸入。

此外,還引入了一些新的模塊和功能支持。包括基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)音活動(dòng)檢測(cè)(VAD)和說(shuō)話人日志(Speaker Diarization)模塊。還引入了中文逆文本正則化的功能。這些模型的詳細(xì)信息都可以在相應(yīng)的鏈接中找到。

2. Word Boosting

除此之外,我們還為中文提供了詳細(xì)的教程。第一部分是關(guān)于熱詞(Word Boosting)的教程。

圖片

熱詞是通過(guò)在識(shí)別時(shí)候?qū)μ囟ǖ脑~語(yǔ)的權(quán)重做調(diào)整,從而使得這個(gè)詞語(yǔ)識(shí)別得更準(zhǔn)。在教程中,展示了一個(gè)中文模型使用熱詞的示例,如"望岳",這是一首古詩(shī)的名字,我們?yōu)檫@個(gè)詞賦予了一個(gè)分?jǐn)?shù)為 20 的權(quán)重。接著,使用 Riva 提供的 add_word_boosting_to_config 方法,將我們希望添加的詞匯及其分?jǐn)?shù)配置到客戶端中。然后,將配置好的請(qǐng)求發(fā)送給 ASR 服務(wù)器,就可以獲得加入熱詞后的識(shí)別結(jié)果。

在配置熱詞時(shí),需要設(shè)置兩個(gè)參數(shù):boosted_lm_words 和boosted_lm_score。boosted_lm_words 是我們希望提高識(shí)別準(zhǔn)確度的詞匯列表。而 boosted_lm_score 則是為這些詞匯設(shè)置的分?jǐn)?shù),通常在 20 到 100 之間。

圖片

除了前面的基本配置,Riva 的熱詞功能還支持一些高級(jí)用法。例如,可以同時(shí)提升多個(gè)詞匯的權(quán)重。比如,在例子中我們給"五 G"和"四 G"這兩個(gè)詞匯,分別設(shè)置了權(quán)重 20 和 30。

此外,我們還可以使用 word boosting 來(lái)降低某些詞匯的準(zhǔn)確度,即給它們分配負(fù)的權(quán)重,從而降低其出現(xiàn)的概率。例如,在例子中,我們給出了一個(gè)漢字"她",它的分?jǐn)?shù)設(shè)置為 -100。這樣,模型就會(huì)傾向于不識(shí)別出這個(gè)漢字。理論上,我們可以設(shè)置任意數(shù)量的熱詞,不會(huì)對(duì)延遲造成影響。另外值得注意的是,boosting 的過(guò)程是在客戶端實(shí)現(xiàn)的,對(duì)服務(wù)器端沒有影響。

3. Finetuning Conformer AM

第二個(gè)教程,是關(guān)于如何微調(diào) Conformer 聲學(xué)模型。

圖片

微調(diào) ASR 使用的是 NeMo 工具。配置好 NGC 賬戶后,就可以使用"NGC download"命令直接下載 Riva 所提供的預(yù)訓(xùn)練好的中文模型。在這個(gè)例子中,下載了第五個(gè)版本的中文 ASR 模型。下載完成后,需要加載預(yù)訓(xùn)練模型。

首先,需要導(dǎo)入一些包。參數(shù) model path 設(shè)置為剛剛下載好的模型的路徑。接下來(lái),使用 NeMo 提供的 ASRModel.restore_from 函數(shù)獲取模型的配置文件,通過(guò) target 這個(gè)參數(shù)可以獲取原始 ASR 模型的類別。接著,使用 import_class_by_path 函數(shù)獲取實(shí)際的模型類別。最后,使用該類別下模型的 restore_from 方法來(lái)加載指定路徑下的 ASR 模型參數(shù)。

圖片

加載了模型后,就可以使用 NeMo 提供的訓(xùn)練腳本來(lái)進(jìn)行微調(diào)。在這個(gè)例子中,我們以訓(xùn)練 CTC 模型為例,使用的腳本是 speech_to_text_ctc.py。需要配置的一些參數(shù)包括 train_ds.manifest_filepath,即訓(xùn)練數(shù)據(jù)的 JSON 文件路徑,還有是否使用 GPU、優(yōu)化器以及最大迭代輪數(shù)等。

在訓(xùn)練完模型之后,可以進(jìn)行評(píng)估。評(píng)估時(shí)需要注意將 use_cer 參數(shù)設(shè)置為true,因?yàn)閷?duì)于中文,我們使用字符錯(cuò)誤率(Character Error Rate)作為指標(biāo)。完成了模型的訓(xùn)練和評(píng)估之后,可以使用 nemo2riva 命令將 NeMo 模型轉(zhuǎn)換為 Riva 模型。然后使用 Riva 的 Quickstart 工具來(lái)部署模型。

三、Riva TTS(Text-to-Speech)服務(wù)

接下來(lái)介紹 Riva TTS 服務(wù)。

1. Demo

圖片

在這一演示中,Riva TTS 提供的自定義功能,使合成出的語(yǔ)音更加自然。

接下來(lái)將介紹 Riva TTS 提供的兩種定制化方式。

2. SSML

圖片

首先是前面提到的 SSML(Speech Synthesis Markup Language),它通過(guò)一個(gè)腳本來(lái)進(jìn)行配置。通過(guò) SSML,可以調(diào)整 TTS 中的韻律,包括音高(pitch)和語(yǔ)速(rate),另外還可以調(diào)整音量。

如上圖所示,對(duì)第一句話“Today is a sunny day“,將其韻律的 pitch 改成了 2.5。對(duì)第二句話,做了兩個(gè)配置,一個(gè)是將它的 rate 設(shè)成 high,另外一個(gè)將音量加 1DB。這樣就可以獲得一個(gè)定制化的結(jié)果。

3.  TTS Finetuning using NeMo

圖片

除了 SSML 之外,還可以使用 NeMo 工具微調(diào)或重新訓(xùn)練 Riva TTS 的FastPitch 或 HiFi-GAN 模型。

Riva 提供了相關(guān)教程,在 NGC 上也提供了一些預(yù)訓(xùn)練模型(參見上圖中的鏈接)。

圖中舉了一個(gè)微調(diào) HiFi-GAN 模型的例子。使用 hifigan_finetune.py 命令,并配置模型配置名稱、批處理大小、最大迭代步數(shù)、學(xué)習(xí)率等參數(shù)。通過(guò)設(shè)置train_dataset 參數(shù)設(shè)置微調(diào) HiFi-GAN 所需的數(shù)據(jù)集路徑。如果從 NGC 下載了預(yù)訓(xùn)練模型,還可以使用 init_from_pretrained_model 參數(shù)來(lái)加載預(yù)訓(xùn)練模型。這樣就可以重新訓(xùn)練 HiFi-GAN 模型。

四、Riva Quickstart 工具

定制化好的模型就可以使用 Quickstart 工具來(lái)進(jìn)行部署。

1. 準(zhǔn)備

圖片

在開始之前,需要注冊(cè)一個(gè) NGC 賬號(hào),并確保 GPU 支持 Riva,并且已經(jīng)安裝了 Docker 環(huán)境。

一旦準(zhǔn)備工作完成,即可通過(guò)提供的鏈接下載 Riva Quickstart。如果已經(jīng)配置好了 NGC CLI,也可以使用 NGC CLI 直接下載 Riva Quickstart。

2. 服務(wù)器啟停

在下載完成 Riva Quick Start 之后,可以使用其中提供的腳本來(lái)進(jìn)行服務(wù)器的初始化、啟動(dòng)和關(guān)閉等操作。

圖片

以最新版本的 Riva(2.13.1)為例,下載完成后,只需運(yùn)行 riva_init.sh、riva_start.sh 或 riva_stop.sh 即可完成服務(wù)器的初始化、啟動(dòng)和關(guān)閉操作。

如果想要使用中文模型,只需將語(yǔ)言代碼設(shè)置為 zh-CN,工具就會(huì)自動(dòng)下載相應(yīng)的預(yù)訓(xùn)練模型。即可啟動(dòng)服務(wù)使用中文的 ASR(自動(dòng)語(yǔ)音識(shí)別)和 TTS(文本轉(zhuǎn)語(yǔ)音)功能。

3. Riva Client

圖片

一旦服務(wù)器啟動(dòng)成功,即可使用 Riva 提供的腳本 riva_start_client.sh 來(lái)調(diào)用服務(wù)。如果希望進(jìn)行離線語(yǔ)音識(shí)別,只需運(yùn)行 riva_asr_client 命令并指定要識(shí)別的音頻文件路徑。如果要進(jìn)行流式語(yǔ)音識(shí)別,則可以使用 riva_streaming_asr_client 命令。如果要進(jìn)行語(yǔ)音合成,可以使用 riva_tts_client 命令,向剛剛啟動(dòng)的服務(wù)器發(fā)送要處理或合成的音頻。

五、參考資源

以下是一些 Riva 相關(guān)的文檔資源:

圖片

Riva 官方文檔:這個(gè)文檔提供了關(guān)于 Riva 的詳細(xì)信息,包括安裝、配置和使用指南等。您可以在這里找到 Riva 的官方文檔,以便深入了解和學(xué)習(xí) Riva 的各個(gè)方面。

Riva Quick Start 用戶指南:這個(gè)指南為用戶提供了 Riva Quick Start 的詳細(xì)說(shuō)明,包括安裝和配置步驟,以及常見問題的解答。如果您在使用 Riva Quick Start 過(guò)程中遇到任何問題,您可以在這個(gè)用戶指南中找到答案。

Riva Release Notes:這個(gè)文檔提供了關(guān)于 Riva 最新模型的更新信息。您可以在這里了解每個(gè)版本的更新內(nèi)容和改進(jìn)。

以上這些資源將可以為用戶更好地理解和使用 Riva 提供幫助。

以上就是本次分享的內(nèi)容,謝謝大家。

六、問答環(huán)節(jié)

Q1:Riva 和 Triton 的關(guān)系是怎樣的?是否有些功能重疊?

A1:對(duì),Riva 使用的是 Nvidia Triton 的inference 框架,是基于 Nvidia Triton 做的一些開發(fā)。

Q2:Riva 在 RAG 領(lǐng)域有實(shí)際落地嗎?或者開源項(xiàng)目?

A2:Riva 目前應(yīng)該主要還是聚焦在 Speech AI 領(lǐng)域。

Q3:Riva 和 Nemo 有什么關(guān)系嗎?

A3:Riva 更側(cè)重于部署的解決方案,用 Nemo 訓(xùn)練的模型可以用 Riva 來(lái)部署,我們也可以使用 Nemo 來(lái)做一些 fine-tuning 和訓(xùn)練的工作,然后 fine-tune 好的模型也可以在 Riva 當(dāng)中進(jìn)行部署。

Q4:其他框架訓(xùn)練的模型可以適用嗎?

A4:其他框架訓(xùn)練的暫時(shí)是不支持的,或者需要一些額外的開發(fā)工作。

Q5:Riva 能部署 PyTorch 或 TensorFlow 訓(xùn)練框架的模型嗎?

A5:Riva 現(xiàn)在主要支持的是 Nemo 訓(xùn)練出來(lái)的模型,Nemo 其實(shí)就是基于 PyTorch 做的一些開發(fā)。

Q6:如果在 Nemo 里自定義了一個(gè)新的模型,需要在 Riva 中寫部署代碼嗎?

A6:對(duì)于自研的模型,想在 Riva 里面支持的話,是需要做一些額外的開發(fā)的。

Q7:小內(nèi)存 GPU 能否使用 Riva?

A7:可以參照 Riva 提供的適配平臺(tái)相關(guān)文檔,其中有不同型號(hào) GPU 的適配的情況。

Q8:怎么快速地試用 Riva?

A8:可以直接在 NGC 上下載 Riva Quickstart 工具包來(lái)試用 Riva。

Q9:如果要支持中文方言,Riva 是不是要做定制化訓(xùn)練?

A9:對(duì)的??梢允褂米约旱囊恍┓窖缘臄?shù)據(jù)。在 Riva 提供的預(yù)訓(xùn)練模型基礎(chǔ)上進(jìn)行微調(diào),再在 Riva 里面部署就可以了。

Q10:Riva 和 Tensor LM 的定位有沒有一些重合,或者區(qū)別?

A10:Riva 的加速其實(shí)也是使用 Tensor RT,Riva 是一個(gè)基于 Tensor RT 和 Triton 的產(chǎn)品。

責(zé)任編輯:姜華 來(lái)源: DataFunTalk
相關(guān)推薦

2021-11-11 16:14:15

NVIDIA

2024-10-09 11:00:29

2017-09-07 10:36:55

Kubernetes企業(yè)級(jí)

2012-05-14 09:29:40

云應(yīng)用

2018-02-02 11:21:25

云計(jì)算標(biāo)準(zhǔn)和應(yīng)用大會(huì)

2022-04-28 11:38:13

企業(yè)級(jí)AI平臺(tái)選型

2021-06-14 09:46:11

開源混合云云計(jì)算

2020-02-01 14:29:55

滲透測(cè)試信息收集安全工具

2016-03-31 10:47:02

DaoCloudDocker容器

2024-10-24 10:17:08

2013-12-08 21:16:21

BaaS企業(yè)級(jí)移動(dòng)移動(dòng)信息化

2010-08-23 17:43:43

DHCP服務(wù)器

2024-06-21 16:46:11

2020-02-10 16:17:50

帆軟

2021-06-01 16:58:00

NVIDIA

2019-12-02 11:09:07

AI人工智能Watson

2018-01-14 23:22:36

戴爾

2022-05-30 14:33:55

MLOpsIDC人工智能

2019-05-20 11:19:14

企業(yè)級(jí)云計(jì)算架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)