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");
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 public virtual extern void GetAudioFormat([ComAliasName("DirectEncodeNET.AudioOutputFormat")] out AudioOutputFormat audioFormat);