private string ConvertOutputFormat(AudioOutputFormat format) { switch (format) { case AudioOutputFormat.Raw16Khz16BitMonoPcm: return("raw-16khz-16bit-mono-pcm"); case AudioOutputFormat.Raw8Khz8BitMonoMULaw: return("raw-8khz-8bit-mono-mulaw"); case AudioOutputFormat.Riff16Khz16BitMonoPcm: return("riff-16khz-16bit-mono-pcm"); case AudioOutputFormat.Riff8Khz8BitMonoMULaw: return("riff-8khz-8bit-mono-mulaw"); case AudioOutputFormat.Ssml16Khz16BitMonoSilk: return("ssml-16khz-16bit-mono-silk"); case AudioOutputFormat.Raw16Khz16BitMonoTrueSilk: return("raw-16khz-16bit-mono-truesilk"); case AudioOutputFormat.Ssml16Khz16BitMonoTts: return("ssml-16khz-16bit-mono-tts"); case AudioOutputFormat.Audio16Khz128KBitRateMonoMp3: return("audio-16khz-128kbitrate-mono-mp3"); case AudioOutputFormat.Audio16Khz64KBitRateMonoMp3: return("audio-16khz-64kbitrate-mono-mp3"); case AudioOutputFormat.Audio16Khz32KBitRateMonoMp3: return("audio-16khz-32kbitrate-mono-mp3"); case AudioOutputFormat.Audio16Khz16KbpsMonoSiren: return("audio-16khz-16kbps-mono-siren"); case AudioOutputFormat.Riff16Khz16KbpsMonoSiren: return("riff-16khz-16kbps-mono-siren"); case AudioOutputFormat.Raw24Khz16BitMonoPcm: return("raw-24khz-16bit-mono-pcm"); case AudioOutputFormat.Riff24Khz16BitMonoPcm: return("riff-24khz-16bit-mono-pcm"); case AudioOutputFormat.Audio24Khz48KBitRateMonoMp3: return("audio-24khz-48kbitrate-mono-mp3"); case AudioOutputFormat.Audio24Khz96KBitRateMonoMp3: return("audio-24khz-96kbitrate-mono-mp3"); case AudioOutputFormat.Audio24Khz160KBitRateMonoMp3: return("audio-24khz-160kbitrate-mono-mp3"); default: return("riff-16khz-16bit-mono-pcm"); } }
private static void SpeakWithVoice(string tokenUri, string endpointUri, string key, string locale, string voiceName, AudioOutputFormat format, string text = "Hello, how are you doing?", string outputFile = null) { string accessToken = string.Empty; // The way to get api key: // Unified Speech Service key // Free: https://azure.microsoft.com/en-us/try/cognitive-services/?api=speech-services // Paid: https://go.microsoft.com/fwlink/?LinkId=872236&clcid=0x409 if (tokenUri != null) { Console.WriteLine("Starting Authtentication"); Authentication auth = new Authentication(tokenUri, key); try { accessToken = auth.GetAccessToken(); Console.WriteLine("Token: {0}\n", accessToken); } catch (Exception ex) { Console.WriteLine("Failed authentication."); Console.WriteLine(ex.ToString()); Console.WriteLine(ex.Message); return; } } Console.WriteLine("Starting TTSSample request code execution."); string requestUri = endpointUri; var cortana = new Synthesize(); System.EventHandler <GenericEventArgs <Stream> > handler; if (outputFile == null) { handler = PlayAudio; } else { handler = (sender, e) => SaveAudio(sender, e, outputFile); } cortana.OnAudioAvailable += handler; cortana.OnError += ErrorHandler; // Reuse Synthesize object to minimize latency cortana.Speak(CancellationToken.None, new Synthesize.InputOptions() { RequestUri = new Uri(requestUri), // Text to be spoken. Text = text, VoiceType = Gender.Female, // Refer to the documentation for complete list of supported locales. // Please note locale must be matched with voice locales. Locale = locale, VoiceName = voiceName, OutputFormat = format, // For onpremise container, auth token is optional AuthorizationToken = "Bearer " + accessToken, }).Wait(); cortana.OnAudioAvailable -= handler; cortana.OnError -= ErrorHandler; }
public virtual extern void GetAudioFormat([ComAliasName("DirectEncodeNET.AudioOutputFormat")] out AudioOutputFormat audioFormat);