コード例 #1
0
ファイル: RecordingService.cs プロジェクト: ellisken/Ling
        // https://developers.google.com/admin-sdk/directory/v1/languages
        /// <summary>
        /// Transcribes the specified URL.
        /// </summary>
        /// <param name="url">The URL.</param>
        /// <param name="languageCode">The language code.</param>
        /// <returns></returns>
        public async Task <TranscriptionViewModel> Transcribe(string url, string languageCode = "en-US", List <string> altLanguages = null)
        {
            // Initialize GA Speech Client
            Channel channel = new Channel(
                SpeechClient.DefaultEndpoint.Host, _googleCredential.ToChannelCredentials());
            SpeechClient speech = SpeechClient.Create(channel);

            RecognitionAudio audio = await RecognitionAudio.FetchFromUriAsync(url);

            RecognitionConfig config = new RecognitionConfig
            {
                Encoding     = AudioEncoding.Linear16,
                LanguageCode = languageCode,
            };

            if (altLanguages != null)
            {
                foreach (string altLang in altLanguages)
                {
                    config.AlternativeLanguageCodes.Add(altLang);
                }
            }

            RecognizeResponse response = speech.Recognize(config, audio);

            string transcript = "";
            float  confidence = 0f;
            string language   = "";

            // Parse results
            foreach (var res in response.Results)
            {
                // Take only the highest confidence transcription
                foreach (var alternative in res.Alternatives)
                {
                    if (alternative.Confidence > confidence)
                    {
                        transcript = alternative.Transcript;
                        confidence = alternative.Confidence;
                    }
                }
                language = res.LanguageCode;
            }

            await channel.ShutdownAsync();

            return(new TranscriptionViewModel()
            {
                Transcript = transcript, Confidence = confidence, Language = language
            });
        }
コード例 #2
0
        public async Task FetchFromUriAsync_Uri()
        {
            var audio = await RecognitionAudio.FetchFromUriAsync(new Uri(IconUri));

            Assert.Equal(IconContentSize, audio.Content.Length);
        }