日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用EasyASR進(jìn)行語音識別

EasyASR(語音智能增強(qiáng)算法包)提供多種模型的訓(xùn)練及預(yù)測功能,旨在幫助語音智能應(yīng)用開發(fā)者方便快捷地構(gòu)建語音模型并應(yīng)用于生產(chǎn)。本文以語音識別為例,為您介紹如何在DSW中使用EasyASR算法包。

前提條件

已創(chuàng)建DSW實例,且該實例滿足版本限制,詳情請參見創(chuàng)建及管理DSW實例使用限制

說明

建議使用GPU版本的DSW實例。

背景信息

本文采用wav2letter-small模型作為預(yù)訓(xùn)練模型,除此之外,PAI還提供了wav2letter-base、transformer-smalltransformer-base三個預(yù)訓(xùn)練的ASR模型,供您使用。您只需要下載對應(yīng)的文件,并使用其替換操作流程中的相應(yīng)輸入即可。

模型名稱

詞匯表

配置文件

模型文件

描述

wav2letter-small

alphabet4k.txt

w2lplus-small.py

wav2letter系列適用于對推理速度要求高、精度要求較低的場景。其中wav2letter-base模型比wav2letter-small模型的參數(shù)量大一些。

wav2letter-base

alphabet4k.txt

w2lplus-base.py

transformer-small

alphabet6k.txt

transformer-jca-small.py

transformer系列適用于對精度要求高、推理速度較低的場景。其中transformer-base模型比transformer-small模型的參數(shù)量大一些。

transformer-base

alphabet6k.txt

transformer-jca-base.py

使用限制

EasyASR僅支持如下Python版本和TensorFlow版本:

  • 僅支持Python 3.6版本。

  • 支持TensorFlow 1.12PAI-TensorFlow 1.15版本。

  • 不支持所有的PyTorch版本。

  • 建議采用DSW的鏡像tensorflow:1.12PAI-gpu-py36-cu101-ubuntu18.04tensorflow:1.15-gpu-py36-cu100-ubuntu18.04

操作流程

DSW中使用EasyASR進(jìn)行語音識別的流程如下:

  1. 步驟一:準(zhǔn)備數(shù)據(jù)

    下載語音識別的訓(xùn)練數(shù)據(jù)。

  2. 步驟二:構(gòu)建數(shù)據(jù)集與訓(xùn)練模型

    將數(shù)據(jù)轉(zhuǎn)換為TFRecord格式,并進(jìn)行ASR模型訓(xùn)練。

  3. 步驟三:評估并導(dǎo)出模型

    模型訓(xùn)練完成后,需要對模型的精準(zhǔn)度進(jìn)行評測。如果對模型滿意,則可以將訓(xùn)練好的模型導(dǎo)出為SavedModel,進(jìn)行分布批量預(yù)測。

  4. 步驟四:模型預(yù)測

    您可以使用導(dǎo)出的SavedModel模型進(jìn)行預(yù)測。

步驟一:準(zhǔn)備數(shù)據(jù)

本文使用EasyASR Public Model Zoo中預(yù)訓(xùn)練的ASR模型進(jìn)行少量Fine-Tune,F(xiàn)ine-Tune所用的數(shù)據(jù)集選自中文公開數(shù)據(jù)集THCHS-30的一部分。建議您選用自己的數(shù)據(jù)進(jìn)行模型訓(xùn)練。

  1. 進(jìn)入DSW開發(fā)環(huán)境。

    1. 登錄PAI控制臺

    2. 在左側(cè)導(dǎo)航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進(jìn)入對應(yīng)工作空間內(nèi)。

    3. 在頁面左上方,選擇使用服務(wù)的地域。

    4. 在左側(cè)導(dǎo)航欄,選擇模型開發(fā)與訓(xùn)練 > 交互式建模(DSW)

    5. 可選:交互式建模(DSW)頁面的搜索框,輸入實例名稱或關(guān)鍵字,搜索實例。

    6. 單擊需要打開的實例操作列下的打開

  2. DSW開發(fā)環(huán)境,在頂部菜單欄單擊Notebook

  3. 下載數(shù)據(jù)。

    1. 單擊左上方工具欄中的創(chuàng)建文件夾圖標(biāo),創(chuàng)建項目文件夾(例如asr_test)。

    2. DSW開發(fā)環(huán)境,在頂部菜單欄單擊Terminal,在Terminal頁簽單擊創(chuàng)建terminal

    3. Terminal中,使用cd命令進(jìn)入已創(chuàng)建的文件夾,并通過wget命令下載ASRDemo數(shù)據(jù)集。

      cd asr_test
      wget https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/dsw_sample_data/demo_data.tar.gz
      wget https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/dsw_sample_data/sample_asr_data.csv
    4. 新建子文件夾data,并將下載的Demo數(shù)據(jù)解壓到該文件夾中,即在Terminal中輸入如下命令。

      mkdir data
      tar xvzf demo_data.tar.gz -C data
    5. 下載基于wav2letter的模型。

      EasyASR Public Model Zoo中,我們提供了wav2letter-small、wav2letter-base、transformer-small、transformer-base四個預(yù)訓(xùn)練的ASR模型,供您使用。其中,wav2letter模型具有更快的推理速度,transformer模型相對更精確。本文使用wav2letter模型,您需要在Terminal中輸入如下命令,下載wav2letter-small模型。

      mkdir wav2letter-small
      wget -P wav2letter-small https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/public_model_zoo/w2lplus-small/model.ckpt.index
      wget -P wav2letter-small https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/public_model_zoo/w2lplus-small/model.ckpt.meta
      wget -P wav2letter-small https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/public_model_zoo/w2lplus-small/model.ckpt.data-00000-of-00001
      wget https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/public_model_zoo/w2lplus-small/alphabet4k.txt
      wget https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/public_model_zoo/w2lplus-small/w2lplus-small.py
  4. 查看項目文件夾(asr_test)內(nèi)容。

    文件夾下包含以下文件:

    • data:存放了用于訓(xùn)練的語音片段,通常在15s以內(nèi),為WAV格式,采樣率為16K,單通道。

    • w2lplus-small:存放了預(yù)訓(xùn)練的Checkpoint。

    • alphabet4K.txt:4K中文詞表。

    • sample_asr_data.csv:存儲了所有WAV文件的路徑及對應(yīng)的標(biāo)注文本。文本內(nèi)容需要按照字以空格進(jìn)行分隔,所有斷句以半角分號(;)替換,且文字內(nèi)容不超過字表范圍。如果文字內(nèi)容不在字表中,則使用星號(*)代替。

    • w2lplus-small.py:ASR模型的配置文件。

    asr_test文件夾層級您可以進(jìn)入w2lplus-small文件夾,查看下載的預(yù)訓(xùn)練Checkpoint,如下圖所示。預(yù)訓(xùn)練Checkpoint文件

步驟二:構(gòu)建數(shù)據(jù)集與訓(xùn)練模型

  1. 在項目文件夾(asr_test)下,通過Terminal調(diào)用EasyASR的數(shù)據(jù)轉(zhuǎn)換功能,將準(zhǔn)備的數(shù)據(jù)轉(zhuǎn)換為TFRecord。

    easyasr_create_dataset --input_path='sample_asr_data.csv' --output_prefix='tfrecords/'

    命令中的參數(shù)含義如下:

    • input_path:訓(xùn)練數(shù)據(jù)的文件名稱,為CSV文件。該文件中記錄了用于訓(xùn)練的WAV文件路徑和人工標(biāo)注的結(jié)果。

    • output_prefix:輸出TFRecord的路徑前綴。本文中的所有TFRecord都輸出至tfrecords文件夾,您可以根據(jù)實際情況修改。

      重要

      請勿省略文件夾路徑最后的正斜線(/)。

  2. Terminal中輸入如下命令進(jìn)行ASR模型訓(xùn)練。

    easyasr_train --config_file='w2lplus-small.py' --log_dir='model_dir' --load_model_ckpt='wav2letter-small/model.ckpt' --vocab_file='alphabet4k.txt' --train_data='tfrecords/train_*.tfrecord'

    命令中的參數(shù)含義如下:

    • config_file:訓(xùn)練模型的配置文件。本文基于wav2letterASR模型配置文件w2plus-small.py進(jìn)行模型訓(xùn)練,您可以根據(jù)實際情況修改該配置文件。

    • log_dir:模型Checkpoint的輸出路徑,您可以根據(jù)實際情況修改。

    • load_model_ckpt:加載的預(yù)訓(xùn)練模型的Checkpoint,在本文中即為之前下載的wav2letter-small模型。如果省略了該參數(shù),則表明需要從零開始訓(xùn)練該ASR模型。

    • vocab_file:訓(xùn)練模型的漢字詞匯表。如果您使用預(yù)訓(xùn)練的wav2letter模型,請不要修改對應(yīng)的詞表alphabet4k.txt。如果您使用預(yù)訓(xùn)練的transformer模型,請不要修改對應(yīng)的詞表alphabet6k.txt。

    • train_data:訓(xùn)練ASR模型所用的TFRecord,使用正則表達(dá)式進(jìn)行匹配,您可以根據(jù)實際情況修改。

步驟三:評估并導(dǎo)出模型

模型訓(xùn)練完成后,需要對模型的精準(zhǔn)度進(jìn)行評測。您可以根據(jù)需求,將數(shù)據(jù)集劃分為訓(xùn)練集和評測集,本文在此僅給出一個簡單的示例。

  1. Terminal中輸入以下命令,以評估模型精準(zhǔn)度。

    easyasr_eval --config_file='w2lplus-small.py' --checkpoint='model_dir/model.ckpt-1000' --vocab_file='alphabet4k.txt' --eval_data='tfrecords/train_*.tfrecord'

    命令中的參數(shù)含義如下:

    • config_file:訓(xùn)練模型的配置文件。本文基于wav2letterASR模型配置文件w2plus-small.py進(jìn)行模型訓(xùn)練,您可以根據(jù)實際情況修改該配置文件。

    • checkpoint:用于評估和導(dǎo)出的模型Checkpoint路徑。在模型訓(xùn)練過程中,系統(tǒng)會保存多個Checkpoint,您可以根據(jù)實際情況修改該路徑。

    • vocab_file:ASR模型對應(yīng)的漢字詞匯表。

      重要

      在進(jìn)行模型訓(xùn)練和評估時,必須使用相同的詞匯表。

    • eval_data:評測ASR模型所用的TFRecord,參數(shù)輸入格式與train_data相同。

  2. 您可以將訓(xùn)練好的模型導(dǎo)出為SavedModel,進(jìn)行分布批量預(yù)測。在Terminal中輸入以下命令,將模型導(dǎo)出。

    easyasr_export --config_file='w2lplus-small.py' --checkpoint='model_dir/model.ckpt-1000' --vocab_file='alphabet4k.txt'  --mode='interactive_infer'

    命令中的參數(shù)含義如下:

    • config_file:訓(xùn)練模型的配置文件。本文基于wav2letterASR模型配置文件w2plus-small.py進(jìn)行模型訓(xùn)練,您可以根據(jù)實際情況修改該配置文件。

    • checkpoint:用于評估和導(dǎo)出的模型Checkpoint路徑。在模型訓(xùn)練過程中,系統(tǒng)會保存多個Checkpoint,您可以根據(jù)實際情況修改該路徑。

    • vocab_file:ASR模型對應(yīng)的漢字詞匯表。

    • mode:模型導(dǎo)出的格式。當(dāng)前版本的EasyASR僅支持interactive_infer模式,您無需修改。

    模型導(dǎo)出完成后,您可以在當(dāng)前文件夾(asr_test)下查看生成的模型。其中,SavedModel已經(jīng)保存在export_dir中,如下圖所示。導(dǎo)出模型進(jìn)入export_dir子文件夾,即可查看導(dǎo)出的模型,如下圖所示。export_dir

步驟四:模型預(yù)測

您可以使用導(dǎo)出的SavedModel模型進(jìn)行預(yù)測。在DSW環(huán)境下,EasyASR采用CSV文件存儲輸入輸出內(nèi)容。

  1. Terminal中輸入如下命令,安裝音頻解碼工具FFmpeg。

    sudo apt update
    sudo apt install ffmpeg
    說明

    此處默認(rèn)使用的ubuntu系統(tǒng)。如果您使用其他系統(tǒng),則只需要系統(tǒng)安裝FFmpeg即可。如果您已經(jīng)安裝,則可以跳過該步驟。

  2. 在項目文件夾(asr_test)下,通過Terminal輸入如下命令,下載示例輸入文件。

    wget https://pai-audio-open-modelzoo.oss-cn-zhangjiakou.aliyuncs.com/dsw_sample_data/input_predict.csv

    該輸入文件中的每一行為一條音頻的URL路徑。

  3. Terminal中輸入如下命令,使用訓(xùn)練得到的ASR模型進(jìn)行預(yù)測。

    easyasr_predict --input_csv='input_predict.csv' --output_csv='output_predict.csv' --num_features=64 --use_model='w2l' --vocab_file='alphabet4k.txt' --export_dir='export_dir' --num_predict_process=3  --num_preproces=3

    命令中的參數(shù)含義如下:

    • input_csv:輸入含有音頻URL路徑的文件,您可以根據(jù)實際情況修改。

    • output_csv:輸出預(yù)測結(jié)果文件名。您可以根據(jù)實際情況修改,無需提前創(chuàng)建該輸出文件。

    • num_features:ASR模型的聲學(xué)特征維度。EasyASR采用的預(yù)訓(xùn)練wav2letter-smallwav2letter-base模型默認(rèn)值為64,預(yù)訓(xùn)練transformer-smalltransformer-base模型默認(rèn)值為80。您可以根據(jù)實際情況選擇。

    • use_model:模型類別,支持以下兩種類別:

      • “w2l”:對應(yīng)wav2letter模型。

      • “transformer”:對應(yīng)transformer模型。

      本文采用的wav2letter-small模型對應(yīng)的值為“w2l”

    • vocab_file:ASR模型對應(yīng)的漢字詞匯表。

    • export_dir:導(dǎo)出SavedModel的路徑,您可以根據(jù)實際情況修改。

    • num_predict_process:用于模型預(yù)測的線程數(shù),您可以根據(jù)實際情況修改。

    • num_preproces:用于音頻下載和預(yù)處理的線程數(shù),您可以根據(jù)實際情況修改。