โครงการนี้ออกแบบมาสำหรับ:
$ 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
หากคุณต้องการสร้างอิมเมจนักเทียบท่าและรันคอนเทนเนอร์ตั้งแต่ต้น ให้รันคำสั่งต่อไปนี้
สร้างอิมเมจนักเทียบท่า:
$ make build
(การดำเนินการนี้อาจใช้เวลาสักครู่)
เรียกใช้อิมเมจนักเทียบท่า:
$ make local-nobuild
วัตถุประสงค์ของโครงการนี้คือการออกแบบและใช้อัลกอริธึมการตรวจจับกิจกรรมเสียงแบบเรียลไทม์โดยอิงจากการเรียนรู้เชิงลึก
โซลูชันที่ได้รับการออกแบบนั้นอิงตามการแยกคุณสมบัติ MFCC และรุ่น 1D-Resnet ที่จัดประเภทว่าสัญญาณเสียงเป็นคำพูดหรือเสียงรบกวน
แบบอย่าง | ตามมาตรฐานรถไฟ | วาลแอค | ทดสอบตามมาตรฐาน |
---|---|---|---|
1D-เรสเน็ต | 99 % | 98 % | 97 % |
ผลการอนุมานดิบและหลังการประมวลผลกับสัญญาณเสียงทดสอบแสดงไว้ด้านล่าง
โครงการ voice_activity_detection/
มีโครงสร้างดังต่อไปนี้:
vad/data_processing/
: การติดป้ายกำกับ การประมวลผล การบันทึก และการแสดงภาพข้อมูลดิบvad/training/
: ข้อมูล ไปป์ไลน์อินพุต แบบจำลองและการฝึกอบรม / การประเมินผล / การทำนายvad/inference/
: ส่งออกโมเดลที่ผ่านการฝึกอบรมและการอนุมาน โปรดดาวน์โหลดชุดข้อมูลคลังข้อมูล LibriSpeech ASR จาก https://openslr.org/12/ และแยกไฟล์ทั้งหมดไปที่ : /path/to/LibriSpeech/
ชุดข้อมูลประกอบด้วยคำพูดภาษาอังกฤษที่อ่านด้วยความถี่ 16kHz จากหนังสือเสียงประมาณ 1,000 ชั่วโมง และเหมาะอย่างยิ่งสำหรับการตรวจจับกิจกรรมด้วยเสียง
ฉันใส่คำอธิบายประกอบชุดข้อมูล test-clean
ของชุดข้อมูลโดยอัตโนมัติด้วยโมเดล VAD ที่ได้รับการฝึกล่วงหน้า
โปรดใช้ 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/
วิธีนี้จะบันทึกคำอธิบายประกอบลงใน /path/to/LibriSpeech/labels/
เป็นไฟล์ . .json
$ 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/
โมเดลที่ส่งออกจะถูกบันทึกไว้ภายในไดเร็กทอรีนี้