예제 #1
0
        public static async Task KeywordRecognizer()
        {
            Console.WriteLine("say something ...");
            using (var audioInput = AudioConfig.FromDefaultMicrophoneInput())
            {
                using (var recognizer = new KeywordRecognizer(audioInput))
                {
                    var model  = KeywordRecognitionModel.FromFile("YourKeywordModelFilename.");
                    var result = await recognizer.RecognizeOnceAsync(model).ConfigureAwait(false);

                    Console.WriteLine($"got result reason as {result.Reason}");
                    if (result.Reason == ResultReason.RecognizedKeyword)
                    {
                        var stream = AudioDataStream.FromResult(result);

                        await Task.Delay(2000);

                        stream.DetachInput();
                        await stream.SaveToWaveFileAsync("AudioFromRecognizedKeyword.wav");
                    }
                    else
                    {
                        Console.WriteLine($"got result reason as {result.Reason}. You can't get audio when no keyword is recognized.");
                    }
                }
            }
        }
        private async void OnRecognitionButtonClicked(object sender, EventArgs e)
        {
            bool locationAccessGranted = await DependencyService.Get <ILocationService>().GetPermissionsAsync();

            if (!locationAccessGranted)
            {
                UpdateUI("Please give location access.");
            }

            if (_recognizer == null)
            {
                _recognizer = new KeywordRecognizer(AudioConfig.FromDefaultMicrophoneInput());
            }
            if (_model == null)
            {
                var kwsModelDir = DependencyService.Get <IFileSystemService>().GetWakeWordModelPath(kwsModelFile);
                _model = KeywordRecognitionModel.FromFile(kwsModelDir);
            }

            UpdateUI("Say wakeword to start recording speech.");
            _result = await _recognizer.RecognizeOnceAsync(_model).ConfigureAwait(false);

            var locationResult = await DependencyService.Get <ILocationService>().GetCurrentGPSCoordinatesAsync();

            string message = $"Detected keyword at TIME: {DateTime.Now} and LOCATION: {locationResult}";

            UpdateUI(message);

//            UpdateUI("Got a keyword, now you can keep talking...");
//            await DoSpeechRecognition().ConfigureAwait(false);
        }
예제 #3
0
        //////////////////////////////////////////////////////////////   LISTENING COMMANDS   ////////////////////////////////////////////////////////////////////////////////////
        public static async Task RecognizeSpeechAsync()
        {
            Console.Clear();
            Console.WriteLine("Please Say 'Hey Rosita' to begin");
            var keywordModel = KeywordRecognitionModel.FromFile("C:\\Users\\Johnny\\Documents\\GitHub\\Rosita\\Rosita\\827f85af-e8cd-44ad-8d48-1963414c3bde.table");

            using var audioConfig10     = AudioConfig.FromDefaultMicrophoneInput();
            using var keywordRecognizer = new KeywordRecognizer(audioConfig10);
            KeywordRecognitionResult keyresult = await keywordRecognizer.RecognizeOnceAsync(keywordModel);

            var config =
                SpeechConfig.FromSubscription(
                    "aabb8086039843e7b4339dd4928f2de1",
                    "eastus");

            using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
            using var recognizer  = new SpeechRecognizer(config, audioConfig);

            Console.WriteLine("Say something...");
            var result = await recognizer.RecognizeOnceAsync();

            string command = result.Text;

            switch (result.Reason)
            {
            case ResultReason.RecognizedSpeech:
                Console.WriteLine($"RECOGNIZED: Text={result.Text}");
                break;

            case ResultReason.NoMatch:
                Console.WriteLine($"NOMATCH: Speech could not be recognized.");
                break;

            case ResultReason.Canceled:
                var cancellation = CancellationDetails.FromResult(result);
                Console.WriteLine($"CANCELED: Reason={cancellation.Reason}");

                if (cancellation.Reason == CancellationReason.Error)
                {
                    Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}");
                    Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}");
                    Console.WriteLine($"CANCELED: Did you update the subscription info?");
                }
                break;
            }
            //////////////////////////////////////////////////////////////   LISTENING COMMANDS END   /////////////////////////////////////////////////////////////////////////
            ///
            ///
            ///
            /////////////////////////////////////////////////////////////////////   LINK TO KEY PHRASES   ////////////////////////////////////////////////////////////////////////////

            await Speech.TalkingAsync(command.ToLower());

            /////////////////////////////////////////////////////////////////////   LINK TO KEY PHRASES END  ////////////////////////////////////////////////////////////////////////////
        }
예제 #4
0
        private async void RecognizeKeywordButton_Click(object sender, RoutedEventArgs e)
        {
            RecognizeKeywordButton.IsEnabled = false;

            if (recognizer == null)
            {
                recognizer = new KeywordRecognizer(AudioConfig.FromDefaultMicrophoneInput());
            }
            if (model == null)
            {
                await InitializeKeywordModel();
            }

            NotifyUser("Say \"Computer\"", NotifyType.StatusMessage);
            result = await recognizer.RecognizeOnceAsync(model);

            NotifyUser("Got a keyword, now you can keep talking...", NotifyType.StatusMessage);
            SaveToFileButton.IsEnabled = true;
        }