2010-11-04 36 views
5

Tôi đang làm việc trên một số phần mềm cho trẻ em và tìm cách thêm khả năng cho phần mềm phản hồi một số âm thanh không lời nói. Ví dụ, vỗ tay, sủa, huýt sáo, rắm tiếng ồn, v.v.Phần mềm nhận dạng tiếng ồn hoặc âm thanh không nói?

Trước đây tôi đã sử dụng Sphinx CMU và Windows Speech API, nhưng tôi có thể nói rằng không có hỗ trợ nào cho tiếng ồn, và trên thực tế, tôi tin rằng họ sẽ tích cực lọc chúng ra.

Nói chung tôi đang tìm kiếm "Làm thế nào để có được chức năng này", nhưng tôi nghi ngờ nó có thể giúp đỡ nếu tôi phá vỡ nó xuống thành ba câu hỏi mà dự đoán của tôi cho những gì để tìm kiếm tiếp theo:

  1. Có cách nào để sử dụng một trong những công cụ nhận dạng giọng nói chính để nhận ra âm thanh không lời bằng cách thay đổi mô hình âm thanh hoặc từ vựng phát âm?
  2. (hoặc) Đã có thư viện hiện có để thực hiện nhận dạng tiếng ồn không phải từ không?
  3. (hoặc) Tôi có một chút quen thuộc với Mô hình Markov ẩn và công nghệ nhận dạng giọng nói cơ bản từ đại học, nhưng không có ước tính tốt về việc tạo ra một trình nhận dạng âm thanh/âm thanh rất nhỏ từ đầu (giả sử < 20 tiếng ồn được công nhận). Nếu 1) và 2) thất bại, bất kỳ ước tính nào sẽ mất bao lâu để cuộn của riêng tôi?

Cảm ơn

+1

[Câu trả lời của tôi] (http://stackoverflow.com/q/8285673/22364) cho câu hỏi [Nhận dạng thời gian thực của âm thanh không phải lời nói, âm nhạc từ luồng micrô liên tục] (http: // stackoverflow.com/q/8285673) có thể có liên quan. –

Trả lời

0

Tôi không biết bất kỳ thư viện hiện tại bạn có thể sử dụng, tôi nghi ngờ bạn có thể phải cuộn của riêng bạn.

Giấy này có quan tâm không? Nó có một số chi tiết kỹ thuật, họ dường như có thể nhận ra những tiếng vỗ tay và phân biệt chúng với tiếng còi.

0

Vâng, bạn có thể sử dụng phần mềm nhận dạng giọng nói như CMU Sphinx công nhận không thành giọng nói âm thanh. Đối với điều này, bạn cần phải tạo ra các mô hình âm thanh và ngôn ngữ của riêng bạn và xác định từ vựng bị hạn chế trong nhiệm vụ của bạn. Nhưng để đào tạo mô hình âm thanh tương ứng, bạn phải có đủ dữ liệu đào tạo với các âm thanh được chú thích.

Nói tóm lại, trình tự các bước như sau:

Thứ nhất, chuẩn bị nguồn lực cho đào tạo: từ vựng, từ điển, vv Quá trình này được mô tả ở đây: http://cmusphinx.sourceforge.net/wiki/tutorialam. Nhưng trong trường hợp của bạn, bạn cần phải xác định lại tập hợp âm vị và từ vựng. Cụ thể, bạn nên mô hình chất độn như các từ thực tế (vì vậy, không có ++ xung quanh) và bạn không cần phải xác định tập hợp âm vị đầy đủ. Có nhiều khả năng, nhưng có lẽ là cách đơn giản nhất là có một mô hình duy nhất cho tất cả các âm vị giọng nói. Do đó, từ vựng của bạn sẽ trông giống như:

CLAP CLAP 
BARK BARK 
WHISTLE WHISTLE 
FART FART 
SPEECH SPEECH 

Thứ hai, chuẩn bị dữ liệu đào tạo bằng nhãn: Tương tự như VoxForge, nhưng chú thích văn bản chỉ được chứa nhãn từ từ vựng của bạn. Tất nhiên, âm thanh không phải lời nói phải được dán nhãn chính xác. Câu hỏi hay ở đây là nơi có đủ số lượng dữ liệu như vậy. Nhưng tôi đoán là có thể.

Có điều đó, bạn có thể đào tạo mô hình của mình. Nhiệm vụ đơn giản hơn so với nhận dạng giọng nói, ví dụ, bạn không cần phải sử dụng triphones, chỉ đơn điệu.

Giả sử xác suất trước bằng của bất kỳ âm thanh/bài phát biểu, mô hình ngôn ngữ đơn giản nhất có thể là một vòng lặp giống như ngữ pháp (http://cmusphinx.sourceforge.net/wiki/tutoriallm):

#JSGF V1.0; 
/** 
* JSGF Grammar for Hello World example 
*/ 
grammar foo; 
public <foo> = (CLAP | BARK | WHISTLE | FART | SPEECH)+ ; 

Đây là phương pháp rất cơ bản để sử dụng bộ công cụ ASR cho nhiệm vụ của mình. Trong có thể được cải thiện hơn nữa bằng cách tinh chỉnh cấu hình HMM, sử dụng mô hình ngôn ngữ thống kê và sử dụng mô hình âm vị hạt mịn (ví dụ: phân biệt nguyên âm và phụ âm thay vì có mô hình SPEECH đơn. Tùy thuộc vào bản chất dữ liệu đào tạo của bạn).

Bên ngoài khuôn khổ nhận dạng giọng nói, bạn có thể tạo một trình phân loại tĩnh đơn giản sẽ phân tích khung dữ liệu đầu vào theo khung. Mạng nơron giải mã hoạt động trên các chương trình phổ hoạt động khá tốt cho công việc này.

Các vấn đề liên quan