Đây là một ví dụ hoàn chỉnh sử dụng C# và System.Speech để chuyển đổi từ lời nói sang văn bản
Mã này có thể được chia thành 2 phần chính:
cấu hình đối tượng SpeechRecognitionEngine (và nó đòi hỏi các yếu tố) xử lý các sự kiện SpeechRecognized và SpeechHypothesized.
Bước 1: Cấu hình SpeechRecognitionEngine
_speechRecognitionEngine = new SpeechRecognitionEngine();
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
_dictationGrammar = new DictationGrammar();
_speechRecognitionEngine.LoadGrammar(_dictationGrammar);
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
Tại thời điểm này đối tượng của bạn đã sẵn sàng để bắt đầu sao chép âm thanh từ microphone. Bạn cần phải xử lý một số sự kiện, để thực sự có được quyền truy cập vào các kết quả.
Bước 2: Xử lý các SpeechRecognitionEngine Sự kiện
_speechRecognitionEngine.SpeechRecognized - = new EventHandler (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized - = new EventHandler (SpeechHypothesizing);
_speechRecognitionEngine.SpeechRecognized + = new EventHandler (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized + = new EventHandler (SpeechHypothesizing);
private void SpeechHypothesizing (object sender, SpeechHypothesizedEventArgs e) { /// thời gian thực kết quả từ động cơ chuỗi realTimeResults = e.Result.Text; }
private void SpeechRecognized (object sender, SpeechRecognizedEventArgs e) { câu trả lời cuối cùng từ /// chuỗi cơ finalAnswer = e.Result.Text; }
Đó là nó. Nếu bạn muốn sử dụng tệp .wav được ghi trước thay vì micrô, bạn sẽ sử dụng
_speechRecognitionEngine.SetInputToWaveFile (pathToTargetWavFile);
thay vì
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
Có nhiều tùy chọn khác nhau trong các lớp này và chúng đáng khám phá chi tiết hơn.
http://ellismis.com/2012/03/17/converting-or-transcribing-audio-to-text-using-c-and-net-system-speech/
Đây là con đường cho Win7 C: \ Windows \ System32 \ Speech \ Common –
Speech to Text ... không phải là cách khác xung quanh. –
@RobHay "Ngoài ra, tôi sẽ cần một API hoặc thư viện có thể thực hiện chuyển văn bản thành giọng nói" vì vậy tôi nghĩ câu trả lời của tôi là - ít nhất - một phần chính xác. –