2014-09-20 20 views
11

Trước khi tôi cố gắng sử dụng PocketSphinx cho Android, tôi đã sử dụng API nhận dạng giọng nói của Google. Tôi không cần đặt tên tìm kiếm hoặc tệp từ điển. Nó chỉ nhận ra mọi từ được kể.CMUSphinx PocketSphinx - Nhận diện tất cả (hoặc số lượng lớn) các từ

Bây giờ, trong PocketSphinx, tôi cần thực hiện. Nhưng tôi chỉ có thể tìm cách thiết lập nhận dạng cho một từ, hoặc để đặt từ điển (những người có sẵn trong dự án demo chỉ có vài từ) mà người nhận ra nghĩ rằng đây là những từ duy nhất tồn tại, có nghĩa là nếu ai đó nói điều tương tự, Trình nhận dạng cho rằng từ được liệt kê trong từ điển.

Tôi chỉ muốn hỏi, Làm cách nào tôi có thể đặt một vài tên tìm kiếm, Hoặc làm cách nào tôi có thể đặt nó để nhận dạng tất cả các từ có sẵn (hoặc thậm chí là một số lượng lớn từ)? Có lẽ ai đó có một tập tin từ điển với một số lượng lớn các từ?

+0

Tôi cũng cần giống như vậy. Bạn có tìm thấy bất kỳ danh sách từ nào không? – SandeepAggarwal

Trả lời

16

Trước khi tôi cố gắng sử dụng PocketSphinx cho Android, tôi đã sử dụng API nhận dạng giọng nói của Google. Tôi không cần phải đặt tên tìm kiếm hoặc tệp từ điển. Nó chỉ nhận ra mọi từ được kể.

Google API cũng nhận ra một tập hợp lớn nhưng vẫn bị giới hạn. Trong một thời gian dài nó không nhận ra "Spotify". Trình nhận dạng giọng nói ngoại tuyến của Google sử dụng khoảng 50k từ như được mô tả trong publication của chúng.

Tôi chỉ muốn hỏi, Làm cách nào tôi có thể đặt một vài tên tìm kiếm, hoặc làm cách nào để đặt tên nhận dạng tất cả các từ có sẵn (hoặc thậm chí một lượng lớn từ)? Có lẽ ai đó có một tập tin từ điển với một số lượng lớn các từ?

Bản trình diễn bao gồm nhận dạng giọng nói từ vựng lớn với mô hình ngôn ngữ (phần dự báo). Có mô hình ngôn ngữ lớn hơn cho ngôn ngữ tiếng Anh có sẵn để tải xuống, ví dụ: En-US generic language model.

Các mã đơn giản để chạy việc công nhận là như thế:

recognizer = defaultSetup() 
    .setAcousticModel(new File(assetsDir, "en-us-ptm")) 
    .setDictionary(new File(assetsDir, "cmudict-en-us.dict")) 
    .getRecognizer(); 
    recognizer.addListener(this); 

    // Create keyword-activation search. 
    recognizer.addNgramSearch(NGRAM_SEARCH, new File(assetsDir, "en-us.lm.bin");); 

    // Start the search 
    recognizer.startListening(NGRAM_SEARCH); 

Tuy nhiên, họ không phải là dễ dàng để phù hợp với thiết bị và giải mã trong thời gian thực. Nếu bạn muốn giải mã lời nói trong thời gian thực với từ vựng lớn, bạn cần truyền phát âm thanh đến máy chủ. Hoặc bạn cần phải hạn chế từ vựng và ngôn ngữ cho một số tập con nhỏ của tiếng Anh chung. Bạn có thể tìm hiểu thêm về nhận dạng giọng nói trong CMUSphinx trong tutorial.

+0

liên kết đến ví dụ mô hình ngôn ngữ chung của En-US bị hỏng .-- ( –

+0

Xin lỗi, làm việc cho tôi. Bạn cũng có thể khám phá http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/US% 20English/ –

+0

@NikolayShmyrev bạn có thể giúp tôi với https://sourceforge.net/p/cmusphinx/discussion/help/thread/5fd09180/ này không – blackHawk

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