Proyek ini dirancang untuk:
$ 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 .
Anda dapat mengambil image terbaru dari DockerHub dan menjalankan perintah Python di dalam container:
$ 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
Jika Anda ingin membuat image buruh pelabuhan dan menjalankan container dari awal, jalankan perintah berikut.
Bangun gambar buruh pelabuhan:
$ make build
(Ini mungkin memakan waktu cukup lama.)
Jalankan gambar buruh pelabuhan:
$ make local-nobuild
Tujuan dari proyek ini adalah untuk merancang dan mengimplementasikan algoritma Deteksi Aktivitas Suara real-time berdasarkan Deep Learning.
Solusi yang dirancang didasarkan pada ekstraksi fitur MFCC dan model 1D-Resnet yang mengklasifikasikan apakah sinyal audio berupa ucapan atau derau.
Model | Kereta api acc. | Val menurut. | Tes menurut. |
---|---|---|---|
1D-Resnet | 99% | 98% | 97% |
Hasil inferensi mentah dan pasca-pemrosesan pada sinyal audio pengujian ditunjukkan di bawah ini.
Proyek voice_activity_detection/
memiliki struktur berikut:
vad/data_processing/
: pelabelan, pemrosesan, perekaman & visualisasi data mentahvad/training/
: data, saluran masukan, model & pelatihan/evaluasi/prediksivad/inference/
: mengekspor model & inferensi terlatih Silakan unduh kumpulan data korpus LibriSpeech ASR dari https://openslr.org/12/, dan ekstrak semua file ke : /path/to/LibriSpeech/
.
Kumpulan data ini berisi sekitar 1000 jam 16kHz membaca pidato bahasa Inggris dari buku audio, dan sangat cocok untuk Deteksi Aktivitas Suara.
Saya secara otomatis memberi anotasi pada kumpulan data test-clean
dengan model VAD yang telah dilatih sebelumnya.
Silakan gunakan labels/
folder dan model VAD terlatih (hanya untuk inferensi) dari tautan ini.
$ cd /path/to/project/voice_activity_detection/vad/
Lewati subbagian ini jika Anda sudah memiliki labels/
folder, yang berisi anotasi dari model terlatih lainnya.
$ python data_processing/librispeech_label_data.py --data-dir /path/to/LibriSpeech/test-clean/ --exported-model /path/to/pretrained/model/
Ini akan merekam anotasi ke dalam /path/to/LibriSpeech/labels/
sebagai file .json
.
$ python data_processing/data_to_tfrecords.py --data-dir /path/to/LibriSpeech/
Ini akan merekam data yang dipisahkan ke format .tfrecord
di /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
Model yang dilatih akan dicatat di /path/to/LibriSpeech/tfrecords/models/resnet1d/
. Model yang diekspor akan dicatat di dalam direktori ini.