voice_activity_detection
1.0.0
此專案的設計目的是:
$ cd /path/to/project/
$ git clone https://github.com/filippogiruzzi/voice_activity_detection.git
$ cd voice_activity_detection/
$ pyenv install 3.7.3
$ pyenv virtualenv 3.7.3 vad-venv
$ pyenv activate vad-venv
$ pip install -r requirements.txt
$ pip install -e .
您可以從 DockerHub 提取最新的映像並在容器內執行 Python 命令:
$ docker pull filippogrz/tf-vad:latest
$ docker run --rm --gpus all -v /var/run/docker.sock:/var/run/docker.sock -it --entrypoint /bin/bash -e TF_FORCE_GPU_ALLOW_GROWTH=true filippogrz/tf-vad
如果您想建立 docker 映像並從頭開始運行容器,請執行以下命令。
建置 Docker 映像:
$ make build
(這可能需要一段時間。)
運行docker映像:
$ make local-nobuild
該計畫的目的是設計並實現一種基於深度學習的即時語音活動檢測演算法。
設計的解決方案基於 MFCC 特徵提取和 1D-Resnet 模型,可對音訊訊號是語音還是雜訊進行分類。
模型 | 火車按照。 | 瓦爾符合。 | 測試依據 |
---|---|---|---|
一維Resnet | 99% | 98% | 97% |
測試音訊訊號的原始和後處理推理結果如下所示。
項目voice_activity_detection/
具有以下結構:
vad/data_processing/
:原始資料標記、處理、記錄和視覺化vad/training/
:資料、輸入管道、模型和訓練/評估/預測vad/inference/
:導出經過訓練的模型和推理請從 https://openslr.org/12/ 下載 LibriSpeech ASR 語料庫資料集,並將所有檔案解壓縮到: /path/to/LibriSpeech/
。
此資料集包含約 1000 小時的有聲讀物中 16kHz 朗讀英語語音,非常適合語音活動偵測。
我使用預先訓練的 VAD 模型自動註解了資料集的test-clean
集。
請隨意使用此連結中的labels/
資料夾和預先訓練的 VAD 模型(僅用於推理)。
$ cd /path/to/project/voice_activity_detection/vad/
如果您已有labels/
資料夾,其中包含來自不同預訓練模型的註釋,請跳過本小節。
$ python data_processing/librispeech_label_data.py --data-dir /path/to/LibriSpeech/test-clean/ --exported-model /path/to/pretrained/model/
這會將註釋作為.json
檔案記錄到/path/to/LibriSpeech/labels/
中。
$ python data_processing/data_to_tfrecords.py --data-dir /path/to/LibriSpeech/
這會將分割後的資料記錄為.tfrecord
格式,位於/path/to/LibriSpeech/tfrecords/
中
$ python training/train.py --data-dir /path/to/LibriSpeech/tfrecords/
$ python inference/export_model.py --model-dir /path/to/trained/model/dir/
$ python inference/inference.py --data-dir /path/to/LibriSpeech/ --exported-model /path/to/exported/model/ --smoothing
訓練後的模型將記錄在/path/to/LibriSpeech/tfrecords/models/resnet1d/
中。匯出的模型將記錄在該目錄中。