Chuyển tới nội dung chính

Phát Hiện Hoạt Động Giọng Nói

Streaming Sound Wave, cùng với các loại dẫn xuất của nó như Capturable Sound Wave, hỗ trợ Phát Hiện Hoạt Động Giọng Nói (VAD). VAD lọc dữ liệu âm thanh đầu vào để chỉ điền vào bộ đệm nội bộ khi phát hiện có giọng nói.

Plugin cung cấp hai triển khai VAD:

Triển khai mặc định sử dụng libfvad, một thư viện phát hiện hoạt động giọng nói nhẹ hoạt động hiệu quả trên tất cả các nền tảng và phiên bản engine được hỗ trợ bởi Runtime Audio Importer.

Sử Dụng Cơ Bản

Để bật VAD sau khi tạo một sound wave, hãy sử dụng hàm ToggleVAD:

Toggle VAD node

Sau khi bật VAD, bạn có thể đặt lại nó bất kỳ lúc nào:

Reset VAD node

Cài đặt VAD Mặc định

Khi sử dụng nhà cung cấp VAD mặc định, bạn có thể điều chỉnh mức độ nhạy của nó bằng cách thay đổi chế độ VAD:

Set VAD Mode node

Tham số mode kiểm soát mức độ mạnh mẽ của VAD trong việc lọc âm thanh. Giá trị càng cao càng hạn chế, nghĩa là chúng ít có khả năng báo cáo dương tính giả nhưng có thể bỏ sót một số giọng nói.

Nhà cung cấp VAD

Sau khi kích hoạt VAD bằng hàm ToggleVAD, bạn có thể chọn giữa các nhà cung cấp Phát hiện Hoạt động Giọng nói khác nhau để phù hợp với nhu cầu của mình. Nhà cung cấp mặc định được tích hợp sẵn, trong khi các nhà cung cấp bổ sung như Silero VAD có sẵn thông qua các plugin mở rộng.

Set VAD Provider node

Tiện ích mở rộng Silero VAD

Silero VAD cung cấp khả năng phát hiện giọng nói chính xác hơn bằng cách sử dụng mạng nơ-ron. Để sử dụng:

  1. Đảm bảo plugin Runtime Audio Importer đã được cài đặt trong dự án của bạn

  2. Đối với UE 5.5 và các phiên bản cũ hơn: Trước khi tải xuống plugin tiện ích mở rộng Silero VAD, hãy đảm bảo rằng NNERuntimeORT đã bị vô hiệu hóa trong dự án của bạn. Việc bật NNERuntimeORT có thể gây ra sự cố khi sử dụng Silero VAD trên các phiên bản engine này do xung đột

  3. Tải xuống plugin tiện ích mở rộng Silero VAD từ đây

  4. Giải nén thư mục từ tệp lưu trữ đã tải xuống vào thư mục Plugins của dự án của bạn (tạo thư mục này nếu nó chưa tồn tại)

  5. Đối với UE 5.6 và các phiên bản mới hơn: Chỉnh sửa tệp RuntimeAudioImporterSileroVAD.uplugin để thêm phụ thuộc NNERuntimeORT. Trong trường "Plugins", sau khi bao gồm RuntimeAudioImporter, hãy thêm:

,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. Dựng lại dự án của bạn (extension này yêu cầu một dự án C++)
important
  • VAD mặc định hoạt động với tất cả các phiên bản engine được Runtime Audio Importer hỗ trợ (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, và 5.8)

  • Silero VAD hỗ trợ Unreal Engine 4.27 và tất cả các phiên bản UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, và 5.8)

  • UE 5.5 trở về trước: NNERuntimeORT phải được vô hiệu hóa trước khi sử dụng Silero VAD để ngăn ngừa sự cố do xung đột plugin. Riêng với UE 5.3, NNERuntimeORTCpu và NNERuntimeORTGpu cũng phải được vô hiệu hóa

  • Yêu cầu UE 5.6+: Bắt đầu từ Unreal Engine 5.6, extension Silero VAD yêu cầu phải thêm phụ thuộc plugin NNERuntimeORT một cách thủ công vào tệp .uplugin

  • Silero VAD khả dụng cho Windows, Linux, Mac, Android (bao gồm Meta Quest), và iOS

  • Extension này được cung cấp dưới dạng mã nguồn và yêu cầu một dự án C++ để sử dụng

  • Để biết thêm thông tin về cách dựng plugin thủ công, hãy xem hướng dẫn Building Plugins

Sau khi cài đặt, bạn có thể chọn nó làm nhà cung cấp VAD của mình bằng cách sử dụng hàm SetVADProvider với lớp provider Silero.

Phát hiện Bắt đầu và Kết thúc Lời nói

Voice Activity Detection không chỉ phát hiện sự hiện diện của lời nói, mà còn cho phép phát hiện điểm bắt đầu và kết thúc của hoạt động lời nói. Điều này hữu ích để kích hoạt các sự kiện khi lời nói bắt đầu hoặc kết thúc trong quá trình phát lại hoặc thu âm.

Bạn có thể tùy chỉnh độ nhạy của việc phát hiện bắt đầu và kết thúc lời nói bằng cách điều chỉnh các tham số như thời lượng lời nói tối thiểu và thời lượng im lặng. Các tham số này giúp tinh chỉnh khả năng phát hiện để tránh các kết quả dương tính giả, như bắt gặp những tiếng động ngắn hoặc khoảng dừng quá ngắn giữa các lời nói.

Thời lượng Lời nói Tối thiểu

Tham số Thời lượng Lời nói Tối thiểu (Minimum Speech Duration) đặt lượng hoạt động giọng nói liên tục tối thiểu cần có để kích hoạt một sự kiện bắt đầu lời nói. Điều này giúp lọc ra những tiếng động ngắn không nên được coi là lời nói, để đảm bảo rằng chỉ có hoạt động giọng nói kéo dài mới được nhận dạng. Giá trị mặc định cho Thời lượng Lời nói Tối thiểu300 mili giây.

Nút Set Minimum Speech Duration

Thời lượng Im lặng

Tham số Thời lượng Im lặng thiết lập khoảng thời gian im lặng cần thiết để kích hoạt sự kiện kết thúc giọng nói. Điều này ngăn chặn việc phát hiện giọng nói kết thúc sớm trong những khoảng dừng tự nhiên giữa các từ hoặc câu. Giá trị mặc định cho Thời lượng Im lặng500 mili giây.

Nút Thiết lập Thời lượng Im lặng

Liên kết với các Delegate Phát biểu

Bạn có thể liên kết với các delegate cụ thể khi phát biểu bắt đầu hoặc kết thúc. Điều này hữu ích để kích hoạt hành vi tùy chỉnh dựa trên hoạt động phát biểu, chẳng hạn như bắt đầu hoặc dừng nhận dạng văn bản, hoặc điều chỉnh âm lượng của các nguồn âm thanh khác.

Bind Event To On Speech Started Bind Event To On Speech Ended

So sánh các Nhà cung cấp VAD

VAD Mặc định (libfvad)

Ưu điểm:

  • Nhẹ và hiệu quả
  • Hoạt động trên mọi nền tảng
  • Sử dụng tài nguyên tối thiểu
  • Phù hợp cho thiết bị di động và thiết bị có năng lượng thấp

Phù hợp nhất cho:

  • Phát hiện giọng nói đơn giản trong môi trường yên tĩnh
  • Các ứng dụng di động
  • Các dự án ưu tiên hiệu suất
  • Khi cần hỗ trợ nền tảng phổ quát