国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

上篇(飛槳paddlespeech 語(yǔ)音喚醒初探)初探了paddlespeech下的語(yǔ)音喚醒方案,通過(guò)調(diào)試也搞清楚了里面的細(xì)節(jié)。因?yàn)槭莗ython 下的,不能直接部署,要想在嵌入式上部署需要有C下的推理實(shí)現(xiàn),于是我就在C下把這個(gè)方案的部署實(shí)現(xiàn)了。需要說(shuō)明的是目前完成的是浮點(diǎn)實(shí)現(xiàn),真正部署時(shí)要用的是定點(diǎn)實(shí)現(xiàn),后面要做的是從浮點(diǎn)到定點(diǎn)的轉(zhuǎn)換。浮點(diǎn)實(shí)現(xiàn)也做了兩個(gè)版本。一是跟python下的實(shí)現(xiàn)完全一致的版本,做這個(gè)版本的目的是方便與python版本的結(jié)果比較,確保每個(gè)模塊的實(shí)現(xiàn)完全正確。二是將模型中的卷積層和對(duì)應(yīng)的batchNormal(BN)層合并為一個(gè)卷積層的版本,將卷積層和對(duì)應(yīng)的BN層合并為一個(gè)卷積層一是可以減少參數(shù)的個(gè)數(shù),二是可以減少運(yùn)算量(BN里有求方差等運(yùn)算)。做定點(diǎn)化時(shí)也是要基于這個(gè)版本來(lái)做的。下面就講講我是怎么做C下的實(shí)現(xiàn)的。

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-417160.html

語(yǔ)音喚醒的推理過(guò)程如下圖所示:

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

從上圖可以看出主要分兩步,一是做特征提取,二是做模型推理。將提取出來(lái)的特征值作為模型的輸入,推理后得到模型的輸出,從而給出是否是關(guān)鍵詞的結(jié)果。

?

1,? 特征提取

特征提取的步驟如下圖所示:

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

做這一步時(shí)主要基于兩份開(kāi)源的代碼: FFT 和 MFCC。Fbank是MFCC的一部分,因此需要對(duì)代碼進(jìn)行裁剪。做時(shí)從分幀開(kāi)始到得到特征值,每一步處理都要跟python下的保持完全一致,如分幀時(shí)用的是什么窗,用的是能量譜還是對(duì)數(shù)譜等。調(diào)試時(shí)基于一個(gè)具體的WAV文件來(lái)調(diào)。每一步執(zhí)行后python下有一個(gè)輸出,在C下也有一個(gè)輸出,要確保這兩個(gè)輸出在誤差允許范圍內(nèi)保持一致,否則就是C的實(shí)現(xiàn)有問(wèn)題。經(jīng)過(guò)調(diào)試后特征提取部分就完成了,python下的結(jié)果和C下的結(jié)果保持小數(shù)點(diǎn)后面前四位相同,誤差還是非常小的。

?

2,? 模型推理

模型推理可以分為如下幾個(gè)步驟:在Python下獲取模型參數(shù)并保存進(jìn)文件給C實(shí)現(xiàn)用,跟python完全一致的浮點(diǎn)實(shí)現(xiàn),將卷積層和對(duì)應(yīng)的BN層合并為一個(gè)卷積層的浮點(diǎn)實(shí)現(xiàn)。

2.1 模型參數(shù)獲取

在paddlespeech下先用API獲取每層的參數(shù),代碼大致如下:

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

然后將每層的參數(shù)按事先規(guī)定的格式保存在一個(gè)文件里,供C實(shí)現(xiàn)去解析參數(shù)。我用的參數(shù)保存格式如下:

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

即參數(shù)一層一層的放。在每一層里,先是層名,然后是weight參數(shù)的個(gè)數(shù)和bias參數(shù)的個(gè)數(shù),最后是weight和bias具體的參數(shù)值。在C中就根據(jù)這個(gè)規(guī)則去解析從而得到每一層的參數(shù)。

2.2 跟python推理完全一致的浮點(diǎn)實(shí)現(xiàn)

模型的框圖如下:

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

主要有PreProcess/DTCNStack等模塊。先實(shí)現(xiàn)模型用到的神經(jīng)網(wǎng)絡(luò)里的基本單元,有depthwise_conv1d/pointwise_conv1d/relu/batch_normal/sigmoid等。再將這些基本單元組成pre_process模塊來(lái)調(diào)試。依舊是用調(diào)試特征提取時(shí)的方法來(lái)調(diào),確保每一步的輸出跟python下的在誤差允許范圍內(nèi)保持一致。PreProcess模塊調(diào)好后再來(lái)調(diào)DTCNStack等模塊,最終形成一個(gè)完整的推理實(shí)現(xiàn)。下圖給出了我調(diào)試時(shí)用的wav的最終每幀的在python下和C下的后驗(yàn)概率(有多個(gè)值,限于長(zhǎng)度,這里只截取了部分),可以看出python下和C下的結(jié)果是保持一致的。

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

2.3將卷積層和對(duì)應(yīng)的BN層合并為一個(gè)卷積層的浮點(diǎn)實(shí)現(xiàn)

為了減少參數(shù)個(gè)數(shù)和運(yùn)算量,可以將將卷積層和對(duì)應(yīng)的BN層合并為一個(gè)卷積層。具體原理如下:

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

對(duì)于C實(shí)現(xiàn)來(lái)說(shuō),只要把banch_normal()函數(shù)去掉就可以了。但是在保存參數(shù)時(shí)卷積層的參數(shù)要根據(jù)上面的公式做個(gè)換算,同時(shí)把BN層的去掉。下圖是做最后linear以及后驗(yàn)概率運(yùn)算時(shí)有沒(méi)有BN層的結(jié)果(有多個(gè)值,限于長(zhǎng)度,這里只截取了部分)。

飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)

從上兩圖看出將卷積層和BN層合并為一層對(duì)最終結(jié)果的影響是非常小的,但是省掉了2.5K的參數(shù)以及原先BN層要做的運(yùn)算量。

?

到了這里,關(guān)于飛槳paddlespeech語(yǔ)音喚醒推理C實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【飛槳PaddleSpeech語(yǔ)音技術(shù)課程】— 語(yǔ)音識(shí)別-Deepspeech2

    (以下內(nèi)容搬運(yùn)自飛槳PaddleSpeech語(yǔ)音技術(shù)課程,點(diǎn)擊鏈接可直接運(yùn)行源碼) Demo實(shí)現(xiàn):https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/demos/automatic_video_subtitiles/ 語(yǔ)音識(shí)別(Automatic Speech Recognition, ASR) 是一項(xiàng)從一段音頻中提取出語(yǔ)言文字內(nèi)容的任務(wù)。 (出處:DLHLP 李宏毅 語(yǔ)音識(shí)別課程

    2024年02月08日
    瀏覽(25)
  • 百度飛槳PaddleSpeech的簡(jiǎn)單使用

    百度飛槳PaddleSpeech的簡(jiǎn)單使用

    PaddleSpeech?是基于飛槳?PaddlePaddle?的語(yǔ)音方向的開(kāi)源模型庫(kù),用于語(yǔ)音和音頻中的各種關(guān)鍵任務(wù)的開(kāi)發(fā),包含大量基于深度學(xué)習(xí)前沿和有影響力的模型,一些典型的應(yīng)用示例如下:語(yǔ)音識(shí)別、語(yǔ)音翻譯 (英譯中)、語(yǔ)音合成、標(biāo)點(diǎn)恢復(fù)等。 我只用到了語(yǔ)音識(shí)別(語(yǔ)音轉(zhuǎn)文字)、語(yǔ)

    2024年02月03日
    瀏覽(38)
  • Python使用PaddleSpeech實(shí)現(xiàn)語(yǔ)音識(shí)別(ASR)、語(yǔ)音合成(TTS)

    Python使用PaddleSpeech實(shí)現(xiàn)語(yǔ)音識(shí)別(ASR)、語(yǔ)音合成(TTS)

    目錄 安裝 語(yǔ)音識(shí)別 補(bǔ)全標(biāo)點(diǎn) 語(yǔ)音合成 參考 PaddleSpeech是百度飛槳開(kāi)發(fā)的語(yǔ)音工具 注意,PaddleSpeech不支持過(guò)高版本的Python,因?yàn)樵诟甙姹镜腜ython中,飛槳不再提供paddle.fluid API。這里面我用的是Python3.7 需要通過(guò)3個(gè)pip命令安裝PaddleSpeech: 在使用的時(shí)候,urllib3庫(kù)可能會(huì)報(bào)錯(cuò),因

    2024年04月25日
    瀏覽(29)
  • snowboy 自定義喚醒詞 實(shí)現(xiàn)語(yǔ)音喚醒【語(yǔ)音助手】

    本系列主要目標(biāo)初步完成一款智能音箱的基礎(chǔ)功能,包括語(yǔ)音喚醒、語(yǔ)音識(shí)別(語(yǔ)音轉(zhuǎn)文字)、處理用戶(hù)請(qǐng)求(比如查天氣等,主要通過(guò)rasa自己定義意圖實(shí)現(xiàn))、語(yǔ)音合成(文字轉(zhuǎn)語(yǔ)音)功能。 語(yǔ)音識(shí)別、語(yǔ)音合成采用離線(xiàn)方式實(shí)現(xiàn)。 操作系統(tǒng):Ubuntu 22.04.3 LTS CPU:Intel? Core?

    2024年02月14日
    瀏覽(37)
  • Windows系統(tǒng)實(shí)現(xiàn)喚醒+合成+命令詞智能語(yǔ)音交互

    Windows系統(tǒng)實(shí)現(xiàn)喚醒+合成+命令詞智能語(yǔ)音交互

    1、之前寫(xiě)過(guò)離線(xiàn)能力調(diào)用,今天來(lái)個(gè)終極版,實(shí)現(xiàn)智能交互或者結(jié)合大模型的智能交互示例,下面進(jìn)入正題。上B站效果離線(xiàn)喚醒+離線(xiàn)合成+離線(xiàn)命令詞實(shí)現(xiàn)智能交互_嗶哩嗶哩_bilibili 2、到訊飛開(kāi)放平臺(tái)下載喚醒+合成+命令詞的離線(xiàn)組合包,找到msc_64.dll復(fù)制三份出來(lái),一定要注

    2024年02月16日
    瀏覽(25)
  • Ubuntu20.04 使用Python實(shí)現(xiàn)全過(guò)程離線(xiàn)語(yǔ)音識(shí)別(包含語(yǔ)音喚醒,語(yǔ)音轉(zhuǎn)文字,指令識(shí)別,文字轉(zhuǎn)語(yǔ)音)

    ??因?yàn)槭诸^有一個(gè)項(xiàng)目,該項(xiàng)目需要在香橙派上實(shí)現(xiàn)語(yǔ)音控制,并且?guī)в姓Z(yǔ)音喚醒功能。簡(jiǎn)單來(lái)說(shuō),就是通過(guò)喚醒詞喚醒香橙派,然后說(shuō)出相關(guān)指令,香橙派去執(zhí)行指令。 ??但是,在弄香橙派的時(shí)候,自帶的麥克風(fēng)不好使了,單獨(dú)進(jìn)行麥克風(fēng)測(cè)試的時(shí)候是好使的,但是程

    2024年02月05日
    瀏覽(33)
  • 語(yǔ)音識(shí)別系列︱paddlespeech的開(kāi)源語(yǔ)音識(shí)別模型測(cè)試(三)

    語(yǔ)音識(shí)別系列︱paddlespeech的開(kāi)源語(yǔ)音識(shí)別模型測(cè)試(三)

    參考: 語(yǔ)音識(shí)別系列︱用python進(jìn)行音頻解析(一) 語(yǔ)音識(shí)別系列︱paddlehub的開(kāi)源語(yǔ)音識(shí)別模型測(cè)試(二) 上一篇paddlehub是一些預(yù)訓(xùn)練模型,paddlespeech也有,所以本篇就是更新paddlespeech里面的模型。 參考:PaddleSpeech 一鍵預(yù)測(cè),快速上手Speech開(kāi)發(fā)任務(wù) PaddleSpeech 是 all-in-one 的語(yǔ)

    2024年02月05日
    瀏覽(21)
  • 批量生成,本地推理,人工智能聲音克隆框架PaddleSpeech本地批量克隆實(shí)踐(Python3.10)

    云端煉丹固然是極好的,但不能否認(rèn)的是,成本要比本地高得多,同時(shí)考慮到深度學(xué)習(xí)的訓(xùn)練相對(duì)于推理來(lái)說(shuō)成本也更高,這主要是因?yàn)樗枰罅康臄?shù)據(jù)、計(jì)算資源和時(shí)間等資源,并且對(duì)超參數(shù)的調(diào)整也要求較高,更適合在云端進(jìn)行。 在推理階段,模型的權(quán)重和參數(shù)不再調(diào)

    2024年02月09日
    瀏覽(26)
  • 人工智能-語(yǔ)音識(shí)別技術(shù)paddlespeech的搭建和使用

    PaddleSpeech是百度飛槳(PaddlePaddle)開(kāi)源深度學(xué)習(xí)平臺(tái)的其中一個(gè)項(xiàng)目,它基于飛槳的語(yǔ)音方向模型庫(kù),用于語(yǔ)音和音頻中的各種關(guān)鍵任務(wù)的開(kāi)發(fā),包含大量基于深度學(xué)習(xí)前沿和有影響力的模型。PaddleSpeech支持語(yǔ)音識(shí)別、語(yǔ)音翻譯(英譯中)、語(yǔ)音合成、標(biāo)點(diǎn)恢復(fù)等應(yīng)用示例。

    2024年02月02日
    瀏覽(29)
  • 百度飛槳PP-YOLOE ONNX 在LabVIEW中的部署推理(含源碼)

    百度飛槳PP-YOLOE ONNX 在LabVIEW中的部署推理(含源碼)

    目錄 前言 一、什么是PP-YOLO 二、環(huán)境搭建 1、部署本項(xiàng)目時(shí)所用環(huán)境 2、LabVIEW工具包下載及安裝 三、模型的獲取與轉(zhuǎn)化 1、安裝paddle 2、安裝依賴(lài)的庫(kù) 3、安裝pycocotools 4、導(dǎo)出onnx模型 (1)導(dǎo)出推理模型 (2) 安裝paddle2onnx (3) 轉(zhuǎn)換成onnx格式 四、在LabVIEW實(shí)現(xiàn)PP-YOLOE的部署推

    2024年02月16日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包