Vb使用SAPI spvoice将文本转换为音频文件

时间:2017-10-26 07:43:47

标签: .net vb.net sapi

我是Microsoft .Net Technologies的新手,我正在开发一个将文本转换为语音,将文本转换为音频的项目。

Dim SAPI = CreateObject("SAPI.spvoice")
Private Sub Speak_Click(sender As Object, e As EventArgs) Handles Speak.Click

    SAPI.Speak(TextBox1.Text)

End Sub

以上是我的代码,请指导我如何将该文本保存到音频文件中。 我正在使用最新的2k17 .net技术。 感谢

1 个答案:

答案 0 :(得分:0)

您可以将SAPI输出保存为.WAV文件,如下所示:

  1. 使用SpFileStream.Open创建并打开.WAV文件作为流 方法
  2. 将此文件流分配给SpVoice.AudioStream属性。
  3. 以下是一个例子:

    Const SAFT48kHz16BitStereo = 39
    Const SSFMCreateForWrite = 3 ' Creates file even if file exists and so destroys or overwrites the existing file
    
    Dim oFileStream, oVoice
    
    Set oFileStream = CreateObject("SAPI.SpFileStream")
    oFileStream.Format.Type = SAFT48kHz16BitStereo
    oFileStream.Open "C:\Work\Sample.wav", SSFMCreateForWrite
    
    Set oVoice = CreateObject("SAPI.SpVoice")
    Set oVoice.AudioOutputStream = oFileStream
    oVoice.Speak "Hello world", 3
    
    oVoice.WaitUntilDone(10000)
    
    oFileStream.Close
    

    https://stackoverflow.com/a/20537139/1744176