以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  语音库能否用名字而不是序号来引用?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82281)

--  作者:ycwk
--  发布时间:2016/3/15 10:28:00
--  语音库能否用名字而不是序号来引用?
想调用安装的语音库,因为每台机器上安装的顺序不一样,  故无法用 item(序号)来准确调用,请问如何调用?


Dim sp As new DotNetSpeech.SpVoice()
                 Dim Stream As new DotNetSpeech.SpFileStreamClass()
           
               
                  Stream.Open("Voice\\departmentname.wav" , DotNetSpeech. SpeechStreamFileMode.SSFMCreateForWrite , False)
              
                 sp.Voice = sp.GetVoices(String .Empty, String.Empty ).item(1)   <-------   item(1)  能否改为语音库名字来引用?


                 sp.AudioOutputStream = Stream
                 sp.Speak(departmentname,DotNetSpeech.SpeechVoiceSpeakFlags.SVSFDefault)
                 Stream.Close ()


--  作者:ycwk
--  发布时间:2016/3/15 10:28:00
--  
补图
--  作者:ycwk
--  发布时间:2016/3/15 10:29:00
--  
补图
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/3/15 10:30:00
--  

循环,对比名字

 

Dim sp As New DotNetSpeech.SpVoice()

For Each v As object In sp.getVoices
    If v.GetDescription Like "*Chinese*" Then 
        sp.Voice  = v
        Exit For
    End If
Next
sp.Speak("I am from china.", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)


--  作者:ycwk
--  发布时间:2016/3/15 14:43:00
--  
感谢袍哥