Tôi thực sự thích các dịch vụ nhận dạng giọng nói mới nhất của Microsofts (và SpeechSynthesis).Cách kết hợp Ngữ pháp (Quy tắc) & Chính tả (Tự do ngôn luận) với SpeechRecognizer trong C#
http://msdn.microsoft.com/en-us/library/ms554855.aspx
http://estellasays.blogspot.com/2009/04/speech-recognition-in-cnet.html
Tuy nhiên tôi cảm thấy như tôi là hơi bị hạn chế khi sử dụng ngữ pháp.
Đừng hiểu sai ngữ pháp là điều tuyệt vời khi nói nhận dạng giọng nói chính xác những từ/cụm từ cần tìm, tuy nhiên nếu tôi muốn nó nhận ra điều gì đó, tôi đã không đưa nó lên? Hoặc tôi muốn phân tích một cụm từ mà một nửa tên được xác định trước và một nửa từ ngẫu nhiên?
Ví dụ ..
Kịch bản A - Tôi nói "Google [Dầu Tràn]" và tôi muốn nó mở Google với kết quả tìm kiếm cho thuật ngữ trong ngoặc đơn mà có thể là bất cứ điều gì.
Kịch bản B - Tôi nói "Xác định vị trí [Manchester]" và tôi muốn nó để tìm kiếm Manchester trong Google Maps hay bất cứ điều gì khác không được xác định trước
Tôi muốn nó biết rằng 'Google' và ' Xác định vị trí 'là các lệnh và những gì đến sau khi nó là các tham số (và có thể là bất cứ điều gì).
Câu hỏi: Có ai biết cách kết hợp sử dụng các ngữ pháp được xác định trước (các từ nhận dạng giọng nói nên nhận ra) và các từ không có trong ngữ pháp được xác định trước của nó không?
mảnh Mã ..
using System.Speech.Recognition;
...
...
SpeechRecognizer rec = new SpeechRecognizer();
rec.SpeechRecognized += rec_SpeechRecognized;
var c = new Choices();
c.Add("search");
var gb = new GrammarBuilder(c);
var g = new Grammar(gb);
rec.LoadGrammar(g);
rec.Enabled = true;
...
...
void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
if (e.Result.Text == "search")
{
string query = "How can I get a word not defined in Grammar recognised and passed into here!";
launchGoogle(query);
}
}
...
...
private void launchGoogle(string term)
{
Process.Start("IEXPLORE", "google.com?q=" + term);
}
Bạn đã viết sai chính tả 'Ngữ pháp '. – SLaks