永发信息网

为什么我安装的微软TTS语音引擎(中文) 5.1 不能朗读中文?

答案:1  悬赏:70  手机版
解决时间 2021-07-19 02:33

我在电脑上安装了一个panopreter ,可以读文章的,可是提示差TTS的语音驱动,又安装了一个微软TTS语音引擎(中文)5.1。我的电脑并不是Windows98的系统,照理说可以朗读中文的啊,可是上面只能朗读英语,设置成中文语言还是提示TTS程序未安装。有什么解决办法没。

最佳答案
laser_2008
在VB中使用文字朗读引擎(TTS)技术

  现今市面上流行的一些英语学习软件,在广告词上经常说自己使用了国际顶尖的全程语音TTS技术,能进行整段英文的流利朗读,并能自由调节朗读的速度与频率等。那么,这个神奇的TTS究竟是什么东西呢?

  其实,TTS是微软出品的一套文字朗读引擎(Text-To-Speech Engine),这些英语软件就是调用它来进行英文朗读的。我们在英语学习软件的编程开发中也可使用TTS技术,下面笔者将利用Visual Basic 5.0来揭开TTS神秘的面纱。


  一、安装TTS引擎

  TTS引擎所需的Microsoft Text-to-Speech Engine与Microsoft Speech API软件都可到微软的站点去下载,也可以在“金山词霸2000”或“金山词霸.net”的安装光盘上找到(文件名为MSTTS.EXE与SPCHAPI.EXE)。安装了TTS引擎后,在Windows所在目录下会生成一个SPEECH目录,其中有一个Vtxtauto.tlb文件,在编程时我们需要调用它。


  二、在VB中引入Vtxtauto.tlb文件

  进入VB 5.0,执行选单命令“文件/新建工程/标准EXE”并确定,然后执行选单“工程”中的“引用”,单击“浏览”按钮到Windows目录下的SPEECH子目录,打开Vtxtauto.tlb文件,将“VoiceText 1.0 Type Library”添加到引用列表中,选中它并单击确定。将库Vtxtauto引入VB后,我们可以通过选单“视图”中的“对象浏览器”来了解它所封装的类,以及各类成员函数的属性的意义、使用格式等信息。一些主要的方法与属性意义,笔者在下面的源程序中将给出注释,在这里就不详细列出。


  三、设置控件及属性

  在FORM1上添加三个Label控件、一个TextBox控件、一个HScrollBar控件和六个CommandButton控件。窗体及各控件的主要属性设置如下:

  FORM1:Caption=“英文朗读”

  LABEL1:Caption=“请输入英文文档”

  LABEL2:Caption=“朗读速度”

  LABEL3:Caption=“ ”

  (LABEL3标签用来显示朗读速度值)

  TEXT1:Text=“Please input english text”;ToolTiptext=“请输入或粘贴英文文档”; MultiLine=True;ScrollBars=3-Both

  HSCROLL1:名称=SpeedChange;Min=90;Max=300(Min与Max属性值分别用来限定可调节的语速的最小与最大值)

  COMMAND1:名称=read;Caption=“朗读”

  COMMAND2:名称=pause;Caption=“暂停”

  COMMAND3:名称=stop;Caption=“停止”

  COMMAND4:名称=prev;Caption=“上一句”

  COMMAND5:名称=next;Caption=“下一句”

  COMMAND6:名称=quit;Caption=“退出”
2007-11-5 03:53 PM laser_2008
  四、编写代码

  下面我们就可以一步步地编写代码,具体代码如下:

  '在窗体装载时调用Register方法注册,括号内的两个参数是字符串

  Private Sub Form_Load()

  Call VTxtAuto.VTxtAuto.Register(Space(8), Space(8))

  '因为语速的默认值为170,故水平滚动条的初值也设为170

  SpeedChange.Value = 170

  End Sub

  '设置朗读速度调节代码,当水平滚动条的值Value发生变化时将其赋给控制语速的Speed属性

  Private Sub SpeedChange_Change()

  VTxtAuto.VTxtAuto.Speed=SpeedChange.Value

  Label3.Caption = SpeedChange.Value

  End Sub

  '设置“朗读”按钮代码

  Private Sub read_Click()

  '如果朗读出错,则转到出错处理标记模块ErrorHandler

  On Error GoTo ErrorHandler

  '调用方法Speak进行朗读,第一个参数是要朗读的文本,第二个参数是设置朗读风格

  Call VTxtAuto.VTxtAuto.speak(Trim(Text1.Text), vtxtsp_VERYHIGH + vtxtst_READING)

  Exit Sub

  ErrorHandler:

  MsgBox "只能朗读英文文档,不能朗读汉字字符!", , "出错信息"

  End Sub

  '设置“暂停”按钮代码

  Private Sub pause_Click()

  If VTxtAuto.VTxtAuto.IsSpeaking Then

  '如果属性IsSpeaking为真,则表示正在朗读,调用AudioPause方法暂停朗读

  Call VTxtAuto.VTxtAuto.AudioPause

  pause.Caption = "恢复"

  Else

  '如果已经处于暂停状态则调用AudioResume方法恢复朗读

  Call VTxtAuto.VTxtAuto.AudioResume

  pause.Caption = "暂停"

  End If

  End Sub

  '设置“停止”按钮代码,调用StopSpeaking方法停止当前朗读

  Private Sub stop_Click()

  Call VTxtAuto.VTxtAuto.StopSpeaking

  End Sub

  '设置“上一句”按钮代码,调用AudioRewind方法往后跳过一句

  Private Sub prev_Click()

   Call VTxtAuto.VTxtAuto.AudioRewind

  End Sub

  '设置“下一句”按钮代码,调用AudioFastForward方法向前跳过一句

  Private Sub next_Click()

   Call VTxtAuto.VTxtAuto.AudioFastForward

  End Sub

  '设置“退出”按钮代码

  Private Sub quit_Click()

   Unload Me

  End Sub

  本程序在中文Windows 95/98、VB 5.0环境下运行通过。运行时在文本编辑框中输入或粘贴英文文档,然后单击“朗读”按钮就可播放读音。


  五、程序改进思路

  本文对在VB编程中使用TTS技术只是起个抛砖引玉的作用,熟悉VB编程的电脑爱好者来可以对本程序作一些改进,例如增加对声卡和TTS引擎是否安装的检测、增加从文本文件或数据库中读取文档的功能、增加让用户选择朗读的优先级和发声音量调节等功能。这些功能实现起来较为复杂,感兴趣的读者可进行深入研究。
2008-6-17 03:35 PM walefrt
语音朗读软件有:如WINDOWS自带的讲述人, 和第三方免费软件[url= http://cn.panopreter.com/][u]Panopreter中文版[/u][/url], 或[url= http://www.panopreter.com/][u]英文版[/u][/url]等.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
We were reading books last Sunday.为什么用
问一个相当严重的问题
从实际出发,结合自身谈谈怎样做到,从实际出
买液晶电脑,买边个牌子最好???
ipod touch 3·1·1固件有些什么功能
有什么好一点的在线英文翻译网站
减肥吃米饭还是吃面,减肥中午吃米还是吃面
适用于榆林地区反季节蔬菜种植技术
有人问,谈朋友跟找媳妇有什么区别?我也搞不
泡沫之夏播出了吗
QQ升级游戏里什么叫炒底?
上传头像失败怎么回事,为什么 快手有的电影能
我的炫舞怎么进不去啦,帮帮忙
怎么样化妆好看?
DNF广东2区40CC手炮可以卖多少钱
推荐资讯
现代诗歌按照作品语言的音韵格律可划分为什么
我的大话号让冻结了 怎磨办
电器延保销售技巧,厨电推广技巧和话术
用点火配件改装卓越车为何会失败呢?
跟一个不爱自己的人谈恋爱…是一种折磨吗?
手机储存卡的问题
桂城到白云机场怎么坐车?
梦幻109封系最高速度可达?
YJ PK怎么加点???
6210s深圳市场价多少?
描写找东西的段落,最难走的路的古诗是什么啊
康佳手机开机密码的通用密码是多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?