Domanda

Ho bisogno di trasformare un testo in voce e quindi salvarlo come file WAV.

È stato utile?

Soluzione

Il seguente codice C # utilizza lo spazio dei nomi System.Speech nel quadro .Net. E 'necessario fare riferimento allo spazio dei nomi prima di usarlo, perché non viene fatto riferimento automaticamente da Visual Studio.

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

Spero che questo sia pertinente e utile.

Altri suggerimenti

E come ho trovato su come modificare il formato di output, abbiamo qualcosa di codice come questo:

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

//Same code comes here 

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

Questo è abbastanza facile e comprensibile.

Cool .net

Questo è dal gioco qualche minuto, caveat emptor così. Ha funzionato bene per me. Ho notato che SpFileStream (che non implementa IDisposable, quindi il try / finally) preferisce percorsi assoluti alla relativa. 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();
        }
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top