Как сохранить синтез речи по тексту как wav с Microsoft SAPI?

  1. Сначала добавьте атрибут ref к компоненту ScrollView. Пример: <ScrollView ref='_scrollView'>
  2. Затем, где вы хотите прокрутить вверх, сделайте этот пример: onPress={() => { this.refs._scrollView.scrollTo(0); }}
6
задан Alexei Levenkov 13 April 2015 в 06:33
поделиться

3 ответа

Следующий код C # использует пространство имен System.Speech в среде .Net. Перед использованием необходимо сослаться на пространство имен, потому что на него автоматически не ссылается Visual Studio.

        SpeechSynthesizer ss = new SpeechSynthesizer();
        ss.Volume = 100;
        ss.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult);
        ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav");
        ss.Speak("Hello World");

Надеюсь, это актуально и полезно.

11
ответ дан 8 December 2019 в 13:01
поделиться

И, как я выяснил, как изменить формат вывода, мы кодируем что-то вроде этого:

SpeechAudioFormatInfo info = new SpeechAudioFormatInfo(6, AudioBitsPerSample.Sixteen, AudioChannel.Mono);

//Same code comes here 

ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav",info);

Это довольно просто и понятно.

Cool .net

4
ответ дан 8 December 2019 в 13:01
поделиться

Это из нескольких моментов игры, так что будьте осторожны. Хорошо сработало для меня. Я заметил, что SpFileStream (который не реализует IDisposable, поэтому try / finally) предпочитает абсолютные пути относительным. C #.

   SpFileStream fs = null;
    try
    {
        SpVoice voice = new SpVoice();
        fs = new SpFileStream();
        fs.Open(@"c:\hello.wav", SpeechStreamFileMode.SSFMCreateForWrite, false);
        voice.AudioOutputStream = fs;
        voice.Speak("Hello world.", SpeechVoiceSpeakFlags.SVSFDefault);
    }
    finally
    {
        if (fs != null)
        {
            fs.Close();
        }
    }
3
ответ дан 8 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: