// 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 }); }
public async Task FetchFromUriAsync_Uri() { var audio = await RecognitionAudio.FetchFromUriAsync(new Uri(IconUri)); Assert.Equal(IconContentSize, audio.Content.Length); }