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

使用EasyASR進行語音識別

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

前提條件

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

說明

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

背景信息

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

模型名稱

詞匯表

配置文件

模型文件

描述

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.12或PAI-TensorFlow 1.15版本。

  • 不支持所有的PyTorch版本。

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

操作流程

DSW中使用EasyASR進行語音識別的流程如下:

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

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

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

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

  3. 步驟三:評估并導出模型

    模型訓練完成后,需要對模型的精準度進行評測。如果對模型滿意,則可以將訓練好的模型導出為SavedModel,進行分布批量預測。

  4. 步驟四:模型預測

    您可以使用導出的SavedModel模型進行預測。

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

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

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

    1. 登錄PAI控制臺

    2. 在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。

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

    4. 在左側導航欄,選擇模型開發(fā)與訓練 > 交互式建模(DSW)

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

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

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

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

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

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

    3. 在Terminal中,使用cd命令進入已創(chuàng)建的文件夾,并通過wget命令下載ASR的Demo數(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四個預訓練的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)內容。

    文件夾下包含以下文件:

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

    • w2lplus-small:存放了預訓練的Checkpoint。

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

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

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

    asr_test文件夾層級您可以進入w2lplus-small文件夾,查看下載的預訓練Checkpoint,如下圖所示。預訓練Checkpoint文件

步驟二:構建數(shù)據(jù)集與訓練模型

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

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

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

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

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

      重要

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

  2. 在Terminal中輸入如下命令進行ASR模型訓練。

    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:訓練模型的配置文件。本文基于wav2letter的ASR模型配置文件w2plus-small.py進行模型訓練,您可以根據(jù)實際情況修改該配置文件。

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

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

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

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

步驟三:評估并導出模型

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

  1. 在Terminal中輸入以下命令,以評估模型精準度。

    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:訓練模型的配置文件。本文基于wav2letter的ASR模型配置文件w2plus-small.py進行模型訓練,您可以根據(jù)實際情況修改該配置文件。

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

    • vocab_file:ASR模型對應的漢字詞匯表。

      重要

      在進行模型訓練和評估時,必須使用相同的詞匯表。

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

  2. 您可以將訓練好的模型導出為SavedModel,進行分布批量預測。在Terminal中輸入以下命令,將模型導出。

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

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

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

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

    • vocab_file:ASR模型對應的漢字詞匯表。

    • mode:模型導出的格式。當前版本的EasyASR僅支持interactive_infer模式,您無需修改。

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

步驟四:模型預測

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

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

    sudo apt update
    sudo apt install ffmpeg
    說明

    此處默認使用的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中輸入如下命令,使用訓練得到的ASR模型進行預測。

    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:輸出預測結果文件名。您可以根據(jù)實際情況修改,無需提前創(chuàng)建該輸出文件。

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

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

      • “w2l”:對應wav2letter模型。

      • “transformer”:對應transformer模型。

      本文采用的wav2letter-small模型對應的值為“w2l”

    • vocab_file:ASR模型對應的漢字詞匯表。

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

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

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