static async Task Main(string[] args) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("模式切換方式如下:"); Console.WriteLine("語音輸入模式下,說出 手動輸入 或 切換,即切換為手動輸入模式"); Console.WriteLine("手動輸入模式下,輸入 語音輸入 或 切換,即切換為語音輸入模式"); Console.WriteLine("任一模式下,輸入 關閉 或 結束,即結束應用程式"); Console.ForegroundColor = ConsoleColor.White; // 實體化 語音辨識 服務 speechService = new SpeechService(); // 實體化 語音辨識基本設定用 BM var recognizeBM = new RecognizeBM(); // 要辨識的語言 recognizeBM.Language = "zh-TW"; Console.WriteLine("輸入帳戶金鑰:"); // 取得金鑰 recognizeBM.Subkey = Console.ReadLine(); // 取得服務端點位置,免費試用帳戶都為 westus recognizeBM.Region = "westus"; // 預設程式啟動提示訊息 recognizeBM.Text = "語音服務啟動"; try { // 執行文字轉語音 await speechService.TextToSpeak(recognizeBM); // 用來切換模式的 flag var isTextMode = false; while (true) { if (isTextMode) { Console.WriteLine("手動輸入:"); // 取得輸入文字 recognizeBM.Text = Console.ReadLine(); // 執行文字轉語音 isTextMode = await StartTextToSpeak(recognizeBM, "語音輸入", isTextMode); } else { Console.WriteLine("語音輸入:"); // 取得輸入文字 recognizeBM.Text = await speechService.SpeakToText(recognizeBM); // 執行文字轉語音 isTextMode = await StartTextToSpeak(recognizeBM, "手動輸入", isTextMode); } } } catch { Console.WriteLine("應用程式執行失敗,請重新執行"); Console.ReadLine(); } }