广告:
PromptBuilder 除了加入 SSML 标签,还有其他好用的控制选项,例如:
AppendAudio()
插入外部声音档(WMA)
AppendBreak()
插入停顿
StartParagraph()/EndParagraph()/StartSentence()/EndSentence()
形成段落跟句子,模拟自然说话的停顿效果,使语音更逼真
StartVoice()/EndVoice()
指定语音名称,或指定语系、性别、年龄,由 SAPI 挑选适用的语音
除了前面介绍过的 <voice>,SSML 还有一些有用标签,可做到精细调控:
(参考:Speech Synthesis Markup Language Reference)
emphasis
强调,加重语气
p、s
标注段落跟句子,让说话效果更自然逼真
phoneme
可使用特殊音标指定特定字语的发音,例如指定 Zhou 要念成「赵」
His name is Mike <phoneme alphabet=""x-microsoft-ups"" ph=""JH AU"">Zhou</phoneme>
参考:发音标示符号表 Phonetic Alphabet Reference
prosody
指定范围内文字的音调(pitch)、速度(rate)、音量(volume)
Your order for <prosody pitch=""+1st"" rate=""-10%"" volume=""50""> eight books </prosody>
voice
指定范围内文字使用不同语音
想将语音输出转成WAV 档也很简单,在voice.Speak() 之前先加上voice.SetOutputToWaveFile("x:\\filename.wav"),一行搞定! 如果要转成MP3,则需要整合第三方程式库或直接用lame.exe 将.wav 档转.mp3,lame.exe x:\filename.mav x:\filename.mp3,一样一行搞定最省事。
广告: