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

深度學(xué)習(xí)應(yīng)用-WeNet語音識別實戰(zhàn)01

這篇具有很好參考價值的文章主要介紹了深度學(xué)習(xí)應(yīng)用-WeNet語音識別實戰(zhàn)01。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

概括

? ? ? ? 本文對WeNet聲音識別網(wǎng)絡(luò)的Python API上介紹的Non-Streaming Usage和 Streaming-Usage分別做了測試,兩者本質(zhì)相同。API對應(yīng)采樣的聲音幀率、聲道都做了限制。效果還可以,但是部分吐字不清晰、有歧義的地方仍然不能識別清晰。

項目地址:

GitHub - wenet-e2e/wenet: Production First and Production Ready End-to-End Speech Recognition Toolkit

安裝:

pip3 install wenetruntime

根據(jù)項目要求,python版本必須3.6+,這里為3.8.3, 因此沒有問題

應(yīng)用案例:

官方文檔上分為非流式和流式兩種,本次先演示非流式應(yīng)用:

非流式:

第一步:壓縮wav文件,根據(jù)測試,api使用wave庫打開文件。且僅支持單聲道、固定幀率。

import wave
with wave.open(wav_file, 'rb') as fin:
    assert fin.getnchannels() == 1
    assert fin.getsampwidth() == 2
    assert fin.getframerate() == 16000

第二步:我準(zhǔn)備用來識別的《起風(fēng)了》wav格式顯然不符合要求,使用pydub來壓縮幀率、合并為單聲道。同時,文件太長也不行。例如全歌一起識別會報錯,因此我這里切割,每次取十分之一的歌詞內(nèi)容(約28秒的內(nèi)容)

# 壓縮文件
from pydub import AudioSegment
sound = AudioSegment.from_wav("/root/jupyterprojects/data/起風(fēng)了.wav")

# 雙聲道變?yōu)閱温暤?sound = sound.set_channels(1)

# 壓縮幀率
sound = sound.set_frame_rate(16000)

# 長度太長了可能會塞爆,每次取十分之一
musicLen = len(sound) 
unitLen = musicLen / 10

for i in range(10):
    _sound = sound[unitLen*i:unitLen*(i+1)]
    _sound.export("/root/jupyterprojects/data/起風(fēng)了-sub%s.wav" % i, format="wav")

第三步:加載模型、識別。如果不提供model_dir參數(shù),則默認(rèn)會從github上下載。包比較大,建議提前下載好。

import sys
import torch
import wenetruntime as wenet
# 下載https://github.com/wenet-e2e/wenet/releases/download/v2.0.1/chs.tar.gz
# 并解壓縮到/root/.wenet/chs目錄下
decoder = wenet.Decoder(model_dir="/root/.wenet/chs/chs/",lang='chs')

第四步:識別。

decoder.decode_wav函數(shù)返回一個可以轉(zhuǎn)換為字典的字符串。

import glob
files = glob.glob("/root/jupyterprojects/data/起風(fēng)了-sub?.wav")
for idx,file in enumerate(files):
    ans=eval(decoder.decode_wav(file))
    print(idx,": ", ans["nbest"][0]["sentence"])

深度學(xué)習(xí)應(yīng)用-WeNet語音識別實戰(zhàn)01,Python,深度學(xué)習(xí)應(yīng)用,語音識別,人工智能

?正確的歌詞:

我曾將青春翻涌成她
也曾指尖彈出盛夏
心之所動 且就隨緣去吧

這一路上走走停停
順著少年漂流的痕跡
邁出車站的前一刻
竟有些猶豫
不禁笑這近鄉(xiāng)情怯
仍無可避免
而長野的天
依舊那么暖
風(fēng)吹起了從前
從前初識這世間

萬般流連
看著天邊似在眼前
也甘愿赴湯蹈火去走它一遍
如今走過這世間
萬般流連
翻過歲月不同側(cè)臉
措不及防闖入你的笑顏
我曾難自拔于世界之大
也沉溺于其中夢話
不得真假 不做掙扎 不懼笑話
我曾將青春翻涌成她
也曾指尖彈出盛夏
心之所動 且就隨緣去吧
逆著光行走 任風(fēng)吹雨打
短短的路走走停停
也有了幾分的距離
不知撫摸的是故事 還是段心情
也許期待的不過是 與時間為敵
再次看到你
微涼晨光里
笑得很甜蜜
從前初識這世間
萬般流連
看著天邊似在眼前
也甘愿赴湯蹈火去走它一遍
如今走過這世間
萬般流連
翻過歲月不同側(cè)臉
措不及防闖入你的笑顏
我曾難自拔于世界之大
也沉溺于其中夢話
不得真假 不做掙扎 不懼笑話
我曾將青春翻涌成她
也曾指尖彈出盛夏
心之所動 且就隨緣去吧
晚風(fēng)吹起你鬢間的白發(fā)
撫平回憶留下的疤
你的眼中 明暗交雜 一笑生花
暮色遮住你蹣跚的步伐
走進(jìn)床頭藏起的畫
畫中的你 低著頭說話
我仍感嘆于世界之大
也沉醉于兒時情話
不剩真假 不做掙扎 無謂笑話
我終將青春還給了她
連同指尖彈出的盛夏
心之所動 就隨風(fēng)去了
以愛之名 你還愿意嗎

其實還可以,有些歌詞吐字本身就不是很清晰。

流式應(yīng)用(Streaming Usage)

這是官方文檔給出的應(yīng)用案例,看起來我這里的切割歌曲法并沒有什么異同,略。

import sys
import torch
import wave
import wenetruntime as wenet

test_wav = sys.argv[1]

with wave.open(test_wav, 'rb') as fin:
    assert fin.getnchannels() == 1
    wav = fin.readframes(fin.getnframes())

decoder = wenet.Decoder(lang='chs')
# We suppose the wav is 16k, 16bits, and decode every 0.5 seconds
interval = int(0.5 * 16000) * 2
for i in range(0, len(wav), interval):
    last = False if i + interval < len(wav) else True
    chunk_wav = wav[i: min(i + interval, len(wav))]
    ans = decoder.decode(chunk_wav, last)
    print(ans)

為了確定兩者本質(zhì)沒有區(qū)別,這里查看API源代碼. 可以看到decode_wav 就是相當(dāng)于幫你用wave庫打開wav文件并傳遞給decode方法。

深度學(xué)習(xí)應(yīng)用-WeNet語音識別實戰(zhàn)01,Python,深度學(xué)習(xí)應(yīng)用,語音識別,人工智能

?文章來源地址http://www.zghlxwxcb.cn/news/detail-518780.html

到了這里,關(guān)于深度學(xué)習(xí)應(yīng)用-WeNet語音識別實戰(zhàn)01的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包