private static async Task Main(string[] args) { CreateHostBuilder(args).Build(); Initialize(); s_twitchBot = new TwitchBot(s_twitchBotSettings); s_twitchBot.Connect(); PhraseListGrammar phraseList = PhraseListGrammar.FromRecognizer(s_speechRecognizer); phraseList.AddPhrase(s_twitchBotSettings.BotName); phraseList.AddPhrase("RPG"); phraseList.AddPhrase("GitHub"); phraseList.AddPhrase("Discord"); s_speechRecognizer.Recognized += OnSpeechRecognizedAsync; s_speechRecognizer.Canceled += SpeechRecognizerOnCanceled; s_speechRecognizer.SessionStopped += SpeechRecognizerOnSessionStopped; System.Console.WriteLine("Speak into your microphone."); await s_speechRecognizer.StartContinuousRecognitionAsync(); Task.WaitAny(s_stopRecognition.Task); DisposeAll(); }
static SpeechRecognizer user_config_to_speech_recognizer(SpeechConfig speech_config, AudioConfig audio_config, USER_CONFIG user_config) { SpeechRecognizer speech_recognizer; if (true == user_config.language_id_enabled) { /* Note: Continuous language identification is supported only in C#, C++, and Python. * See: * https://docs.microsoft.com/azure/cognitive-services/speech-service/how-to-automatic-language-detection?pivots=programming-language-cpp#language-identification-with-speech-to-text */ AutoDetectSourceLanguageConfig detect_language_config = AutoDetectSourceLanguageConfig.FromLanguages(user_config.language_id_languages); speech_recognizer = new SpeechRecognizer(speech_config, detect_language_config, audio_config); } else { speech_recognizer = new SpeechRecognizer(speech_config, audio_config); } if (true == user_config.phrase_list_enabled) { PhraseListGrammar grammar = PhraseListGrammar.FromRecognizer(speech_recognizer); grammar.AddPhrase(user_config.phrase_list); } return(speech_recognizer); }
// Continuous speech recognition assisted with a phrase list. public static async Task ContinuousRecognitionWithFileAndPhraseListsAsync() { // Creates an instance of a speech config with specified subscription key and service region. // Replace with your own subscription key and service region (e.g., "westus"). var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion"); var stopRecognition = new TaskCompletionSource <int>(); // Creates a speech recognizer using file as audio input. // Replace with your own audio file name. using (var audioInput = AudioConfig.FromWavFileInput(@"wreck-a-nice-beach.wav")) { using (var recognizer = new SpeechRecognizer(config, audioInput)) { // Subscribes to events. recognizer.Recognizing += (s, e) => { Console.WriteLine($"RECOGNIZING: Text={e.Result.Text}"); }; recognizer.Recognized += (s, e) => { if (e.Result.Reason == ResultReason.RecognizedSpeech) { Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}"); } else if (e.Result.Reason == ResultReason.NoMatch) { Console.WriteLine($"NOMATCH: Speech could not be recognized."); } }; recognizer.Canceled += (s, e) => { Console.WriteLine($"CANCELED: Reason={e.Reason}"); if (e.Reason == CancellationReason.Error) { Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); Console.WriteLine($"CANCELED: Did you update the subscription info?"); } stopRecognition.TrySetResult(0); }; recognizer.SessionStarted += (s, e) => { Console.WriteLine("\n Session started event."); }; recognizer.SessionStopped += (s, e) => { Console.WriteLine("\n Session stopped event."); Console.WriteLine("\nStop recognition."); stopRecognition.TrySetResult(0); }; // Before starting recognition, add a phrase list to help recognition. PhraseListGrammar phraseListGrammar = PhraseListGrammar.FromRecognizer(recognizer); phraseListGrammar.AddPhrase("Wreck a nice beach"); // Starts continuous recognition. Uses StopContinuousRecognitionAsync() to stop recognition. await recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false); // Waits for completion. // Use Task.WaitAny to keep the task rooted. Task.WaitAny(new[] { stopRecognition.Task }); // Stops recognition. await recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false); } } }
private void loadmyMyGrammarList() { pharseList = PhraseListGrammar.FromRecognizer(recognizer); pharseList.AddPhrase(Orders.Hide1); pharseList.AddPhrase(Orders.Hide2); pharseList.AddPhrase(Orders.Hide3); pharseList.AddPhrase(Orders.Show1); pharseList.AddPhrase(Orders.Show2); pharseList.AddPhrase(Orders.OpenChrome1); pharseList.AddPhrase(Orders.OpenChrome2); pharseList.AddPhrase(Orders.OpenExplorer1); pharseList.AddPhrase(Orders.OpenExplorer2); pharseList.AddPhrase(Orders.OpenNotepad1); pharseList.AddPhrase(Orders.OpenNotepad2); pharseList.AddPhrase(Orders.Time1); pharseList.AddPhrase(Orders.Time2); }