zoukankan      html  css  js  c++  java
  • TTS 导出 wav 音频(转)

    TTS 导出 wav 音频

    实例一:

    Sub Form_Load()
    Const SSFMCreateForWrite = 3
    Const SAFT22kHz16BitMono = 22
    Const SVSFlagsAsync = 1

    Set objVoice = CreateObject(“SAPI.SpVoice”)
    objVoice.Volume = 100
    objVoice.Rate = 1
    Set objVoice.Voice = objVoice.GetVoices().Item(0)

    Set fso = CreateObject(“Scripting.FileSystemObject”)
    Set f = fso.OpenTextFile(“d:\3.txt”, 1)
    Text = f.ReadAll

    Set objFileStream = CreateObject(“SAPI.SpFileStream”)
    objFileStream.Format.Type = SAFT22kHz16BitMono
    objFileStream.Open “d:\test.wav”, SSFMCreateForWrite, False
    Set objVoice.AudioOutputStream = objFileStream

    objVoice.Speak Text, SVSFlagsAsync
    objVoice.WaitUntilDone -1
    objFileStream.Close

    End Sub

    中文需做如下改动

    Private Sub Form_Load()
    Set objVoice = CreateObject(“SAPI.SpVoice”)
    Set colVoice = objVoice.GetVoices() ‘获得语音引擎集合
    objVoice.Volume = 100 ‘设置音量,0到100,数字越大音量越大
    objVoice.Rate = 0
    ‘得到所需语音引擎的编号
    langCN = “MSSimplifiedChineseVoice” ‘简体中文
    langEN = “MSSam” ‘如果安装了TTS Engines 5.1,还可以选择MSMike,MSMary
    For i = 0 To colVoice.Count – 1
    If Right(colVoice(i).Id, Len(langCN)) = langCN Then cnVoice = i
    If Right(colVoice(i).Id, Len(langEN)) = langEN Then enVoice = i
    Next

    Const SSFMCreateForWrite = 3
    Const SAFT22kHz16BitMono = 22
    Const SVSFlagsAsync = 1

    Set objVoice.Voice = colVoice.Item(cnVoice)
    Set fso = CreateObject(“Scripting.FileSystemObject”)
    Set f = fso.OpenTextFile(“d:\3.txt”, 1)
    Text = f.ReadAll

    Set objFileStream = CreateObject(“SAPI.SpFileStream”)
    objFileStream.Format.Type = SAFT22kHz16BitMono
    objFileStream.Open “d:\test.wav”, SSFMCreateForWrite, False
    Set objVoice.AudioOutputStream = objFileStream

    objVoice.Speak Text, SVSFlagsAsync
    objVoice.WaitUntilDone -1
    objFileStream.Close

    实例二:

    Private Sub Form_Load()
    Const SSFMCreateForWrite = 3
    Const SAFT22kHz16BitMono = 22
    Const SVSFlagsAsync = 1

    Set objVoice = CreateObject(“SAPI.SpVoice”)
    objVoice.Volume = 100
    objVoice.Rate = 1
    Set objVoice.Voice = objVoice.GetVoices().Item(0)

    Set fso = CreateObject(“Scripting.FileSystemObject”)
    Set f = fso.OpenTextFile(“d:\3.txt”, 1)
    Text = f.ReadAll

    Set objFileStream = CreateObject(“SAPI.SpFileStream”)
    objFileStream.Format.Type = SAFT22kHz16BitMono
    objFileStream.Open “d:\test.wav”, SSFMCreateForWrite, False
    Set objVoice.AudioOutputStream = objFileStream

    objVoice.Speak Text, SVSFlagsAsync
    objVoice.WaitUntilDone -1
    objFileStream.Close

    End Sub

  • 相关阅读:
    “菜鸟”程序员和“大神”程序员差距在哪里?别告诉我你连菜鸟都不算!
    Android开发:为什么你的学习效率如此低,为什么你很迷茫?
    Android架构师吐槽腾讯王者荣耀的程序员,排位匹配算法怎么搞的,每次都输
    程序员如何回答面试官“请介绍一下自己”这类问题
    Android程序员事件分发机制学习笔记
    面试时,问哪些问题能试出一个 Android 应用开发者真正的水平?
    List、Set、Map的区别
    在Eclipse中使用JUnit4进行单元测试(图文教程一)
    1
    2016、11、17
  • 原文地址:https://www.cnblogs.com/Sandheart/p/1961476.html
Copyright © 2011-2022 走看看