Игра из потока WAV - PullRequest
       45

Игра из потока WAV

0 голосов
/ 26 марта 2020
            var result = service.Synthesize(

                text: text,
                accept: "audio/wav",

                voice: "en-US_AllisonVoice"
                //voice: "en-US_HenryV3Voice"

                );

            using (FileStream fs = File.Create(@"C:\Users\nkk01\Desktop\voice.wav"))

            {
                result.Result.WriteTo(fs);
                fs.Close();
                result.Result.Close();
            }

            var waveStream = new WaveFileReader(@"C:\Users\nkk01\Desktop\voice.wav");
            var waveOut = new WaveOutEvent();
            waveOut.Init(waveStream);

            Console.WriteLine("Playing");
            waveOut.Play();

            Console.WriteLine("Finished playing");

Привет, это мой текущий код, который крайне неэффективен, поскольку для его воспроизведения необходимо сохранить аудиопоток в файл. Я хотел бы передать аудиопоток прямо на динамик моего ноутбука с помощью библиотеки NAudio. Мне так и не удалось найти решение. Это очень поможет, спасибо.

1 Ответ

0 голосов
/ 26 марта 2020

Я не знаком с naudio, но, насколько я могу видеть из их репозитория git, конструктор WaveFileReader также принимает поток вместо имени файла ...

просто попробуйте написать все вам нужен поток памяти вместо файла ... не забудьте переместить поток памяти, прежде чем читать его ('seek' to offset 0)

...