Pergunta

Eu preciso para transformar um texto em fala e, em seguida, salvá-lo como arquivo de wav.

Foi útil?

Solução

O seguinte código C # usa o namespace System.Speech no framework .Net. É necessário fazer referência ao namespace antes de usá-lo, porque ele não é referenciado automaticamente pelo Visual Studio.

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

Espero que isso é relevante e útil.

Outras dicas

E, como eu encontrei para saber como alterar o formato de saída, nós código algo como isto:

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

//Same code comes here 

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

Isso é muito fácil e compreensível.

Cool .net

Esta é do jogo por alguns instantes, de modo caveat.emptor. Funcionou bem para mim. Eu notei que SpFileStream (que não implementa IDisposable, portanto, o try / finally) prefere caminhos absolutos para relativos. 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();
        }
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top