今天热门
热点:

关于微软语音库,微软语音库


在引用了Interop.SpeechLib后,又Imports了,创建了一个实例

dim Speaker as new SPVOICE

例如是这样,用Speaker来发声,那么发出的就是系统默认的语言,例如:

Speaker.Speak("NET")

用中文发声就是一个一个字母地,但是我想读单词,不过系统默认的是中文,怎么用英文!!

看了Speaker的全部属性,基本崩溃,求助!!


解决方案

不做任何设置的直接Speak,将会对Voice采用默认设置,语音引擎也即是采用你操作系统默认的(可以在控制面板——语音中设置此项)。

当然,在代码中也可以使用指定的语音引擎来Speak,请查看Sapi中的

Function GetVoices(Optional ByVal RequiredAttributes As String = "", Optional ByVal OptionalAttributes As String = "") As SpeechLib.ISpeechObjectTokens
   SpeechLib.ISpeechVoice 的成员

 我以前做的语音程序可以设置语音库、速度、输出类型、输出设备等,Example:

  Private WithEvents testVoice As New SpVoice()

 'Speak
  With testVoice
  .Voice = .GetVoices().Item(My.Settings.myVoiceTokenIndex)
  .Rate = My.Settings.myVoiceRate
  .Volume = My.Settings.myVoiceVolume
  .AudioOutput = .GetAudioOutputs().Item(My.Settings.myAudioOutputIndex)
  .AllowAudioOutputFormatChangesOnNextSet = False  
  End With

'上述配置文件类型全为Integer,关系到语音Voice的属性你可以这样写:
spVoice.Voice = spVoice.GetVoices().Item(1)

系统默认的当然就是0了~这个也可以从注册表读取,不过我后来发现读注册表比较笨,SAPI已经提供了GetVoices()这个方法。作出来的效果就是金山/金山谷歌合作版里的语音设置。

希望对你有所帮助。

www.zrccd.nettrue/topics/20180116/67816.htmlTechArticle关于微软语音库,微软语音库 在引用了Interop.SpeechLib后,又Imports了,创建了一个实例 dim Speaker as new SPVOICE 例如是这样,用Speaker来发声,那么发出的就是系统默认的语言,例如: Speak...

相关文章

    暂无相关文章

用户评论

大家都在看