kaoke000.rar

  • PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 9KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 10
    下载次数
  • 2004-06-07 16:57
    上传日期
一个tts例子
kaoke000.rar
  • kaoke000
  • 1.txt
    2.9KB
  • tts000.vbw
    54B
  • tts000.vbp
    1.2KB
  • MSSCCPRJ.SCC
    345B
  • Form1.frm
    8.9KB
  • 单词第1课A.txt
    359B
  • msTTS文字朗读技术.txt
    8.6KB
  • www.pudn.com.txt
    218B
内容介绍
msTTS文字朗读技术 在安装了winxp后,在控制面板上会产生一个《语音》设备,它实际上就是 大名鼎鼎的msTTS引擎,利用它,可以使我们的应用程序具有阅读中英文文本的 能力。虽然最新的msTTS技术推出已经两年有余,介绍此技术的文章却很难找到。 要编程只有阅读微软公司的英文版文档,这对非计算机专业的教师十分困难。 现对此技术作一最基本的介绍。这里总是假设你已经有VB的基本知识,和TTS技术 关系不大的内容只作简单介绍。 一)建立编程环境 如果是XP操作系统,到我的讨论组 http://kaoke.cnnb.net 文件共享下载 《考客--msTTSXP语音库》和〈考客--msTTS中文语音库〉升级你的msTTS引擎。 98操作系统(由于我没有主页,不能放3M以上文件)到 http://www.smartread.net/cn/service/alldownload.html精灵软件公司 下载 英文语音库(免费) 下载 中文男声语音库(免费) 下载 中文女声语音库单机版(免费500次)。 在安装中可能安装程序不会运行,你需要先下载安装Windows Installer系统  MSI文件是微软最新推出的软件安装格式,安装时必须在你的电脑上有Windows Installer系统, 一般情况下,Windows系统已经内置了Windows Installer。但是如果你双击MSI文件安装时出现错误, (正确时*.msi文件的图标就象一台电脑) 说明Installer已经损坏,你必须先完成Windows Installer系统安装。Windows 98,ME的用户:InstMsiA.exe Windows NT4.0,2000 xp的用户:InstMsiW.exe 你到www.sohu.com打入关键字 Windows Installer或InstMsiA 或InstMsiW搜索一下,然后下载安装。 再安装tts语音驱动器。  安装后启动VB,点文件/新建/标准EXE,点工程/引用/浏览 到c:/windos/sYstem 把sapi.dll引用进来, 在microsoft speech object library前面打钩,按确定。但和一般控件不同的是,它在工具箱上并 不显示。 二)设计控件 在form1上放一个timer控件timer1,设置interver=2000 放一个CommonDialog控件CommonDialog1 放一个Label控件Label1 放一个Label控件Label2 放一个Text控件Texten,设置hideselection=false,multline=true,scrollbar=3-both 设计菜单 标题〈打开文本〉名称〈 menu_open_text 〉 菜单 标题〈打开单词〉名称〈 menu_open_word〉 菜单 标题〈关于考客〉名称〈 menu_about〉 三)定义数据类型和变量 Option Explicit Private Type enl_CNN_TYPE '一个数据类型,用来记录一个单词 ENL As String '英文 CNN As String '中文 End Type Const DefaultFmt = "SAFT22kHz16BitMono" '输出音频默认值 Dim enl_cnn_WORD(1 To 600) As enl_CNN_TYPE '保存600个单词的数组 Dim speaker_IDX(0 To 20) As Integer Dim total_WORD As Integer Dim play_SERIAL As Integer Dim readTOKEN As Integer '驱动器实例 讲英语 带事件 Dim WithEvents eVoice As SpVoice '驱动器实例 讲中文 不带事件 Dim cVoice As SpVoice 四)初始化驱动器 Private Sub Form_Load() Dim i As Integer '试图装入msTTS驱动器 '************************************************************ On Error GoTo tts_err: App.Title = "考客(VER0.00版)" Dim Token As ISpeechObjectToken Set eVoice = New SpVoice Set cVoice = New SpVoice '设置阅读速度-10到10之间 eVoice.Rate = -1 '初始化标记读者不可用 For i = 0 To 20 speaker_IDX(i) = -1 Next '读取可以使用的语音 i = 0 For Each Token In eVoice.GetVoices '以下设置读者可用 If Token.GetDescription() = "Microsoft Mary" Then speaker_IDX(1) = i ElseIf Token.GetDescription() = "Microsoft Mike" Then speaker_IDX(2) = i ElseIf Token.GetDescription() = "Microsoft Sam" Then speaker_IDX(3) = i ElseIf Token.GetDescription() = "Microsoft Simplified Chinese" Then speaker_IDX(4) = i ElseIf Token.GetDescription() = "中文女声语音(Ch.Female) [单机版]" Then speaker_IDX(5) = i End If i = i + 1 Next '优先使用的发音者 If speaker_IDX(1) <> -1 Then Set eVoice.Voice = eVoice.GetVoices().Item(speaker_IDX(1)) ' MsgBox "由玛丽小姐给你阅读!" ElseIf speaker_IDX(2) <> -1 Then Set eVoice.Voice = eVoice.GetVoices().Item(speaker_IDX(2)) 'MsgBox "由迈克先生给你阅读!" ElseIf speaker_IDX(3) <> -1 Then Set eVoice.Voice = eVoice.GetVoices().Item(speaker_IDX(3)) 'MsgBox "由山姆大叔给你阅读!" End If '优先使用中文的发音者 If speaker_IDX(5) <> -1 Then Set cVoice.Voice = cVoice.GetVoices().Item(speaker_IDX(5)) ElseIf speaker_IDX(4) <> -1 Then Set cVoice.Voice = cVoice.GetVoices().Item(speaker_IDX(4)) Else MsgBox "系统可能没有中文阅读驱动器" End If Exit Sub tts_err: End Sub 五)打开要阅读的文本文件 Private Sub menu_open_text_Click() Dim fname As String Dim fno As Integer On Error GoTo ErrHandler '------------------------------------------------------------------------------------- '以下设置打开文件对话框属性 CommonDialog1.CancelError = True CommonDialog1.DialogTitle = "请选择你要打开的文件" CommonDialog1.InitDir = App.Path CommonDialog1.Filter = "文本文件*.txt|*.txt" CommonDialog1.FileName = "1.TXT" CommonDialog1.ShowOpen fname = CommonDialog1.FileName '判断文件存在性 If Len(Dir$(fname)) = 0 Then Err.Raise 53 '文件没有找到 End If Texten.Text = "" fno = FreeFile() Open fname For Binary Access Read As #fno Texten.Text = StrConv(InputB$(LOF(fno), 1), vbUnicode) Close fno '停止上一次读 eVoice.Speak vbNullString, SVSFPurgeBeforeSpeak cVoice.Speak vbNullString, SVSFPurgeBeforeSpeak '开始读 eVoice.Speak Texten.Text, SVSFlagsAsync readTOKEN = 1 Me.Caption = App.Title + " " + fname Exit Sub ErrHandler: End Sub 六)打开要阅读的单词文件 Private Sub menu_open_word_Click() Dim fname, en As String Dim n, i, fno As Integer On Error GoTo ErrHandler '捕捉严重错误 CommonDialog1.CancelError = True'以下设置打开文件对话框属性 CommonDialog1.DialogTitle = "请选择要打开的文件!" CommonDialog1.InitDir = App.Path CommonDialog1.Filter = "*.txt|*.txt;" CommonDialog1.DefaultExt = "txt" CommonDialog1.FileName = "单词第1课A.txt" '默认文件名 CommonDialog1.ShowOpen fname = CommonDialog1.FileName '从对话框取得文件名 '判断文件存在性 If Len(Dir$(fname)) = 0 Then Err.Raise 53 '文件没有找到 End If i = 0 fno = FreeFile '取得自由文件号 Open fname For Input As #fno '以 INPUT 方式打开文件 Do While Not EOF(fno) And i < 600 '把单词文件读到数组 Input #fno, en '读入英文 If en <> "" Then i = i + 1 enl_cnn_WORD(i).ENL = en If Not EOF(fno) Then Input #fno, enl_cnn_WORD(i).CNN End If End If Loop Close fno '停止上一次读 eVoice.Speak vbNullString, SVSFPurgeBeforeSpeak cVoice.Speak vbNullString, SVSFPurgeBeforeSpeak '单词总数 total_WORD = i '读第一个单词 play_SERIAL = 1 '播放模式 readTOKEN = 0 Texten.Text = "" Me.Caption = App.Title + " " + fname Exit Sub ErrHandler: Call MsgBox(Error$, 48) End Sub 七)阅读单词 Private Sub Timer1_Timer() Dim readEN, readCN As String If readTOKEN = 0 Then If total_WORD > 0 Then '为了读和显示同步,读空了驱动器队列才读下一句 If (eVoice.Status.RunningState = SRSEDone) And (cVoice.Status.RunningState = SRSEDone) Then '显示的文本 readEN = enl_cnn_WORD(play_SERIAL).ENL readCN = enl_cnn_WORD(play_SERIAL).CNN '读英文 Label1.Caption = readEN eVoice.Speak readEN, SVSFlagsAsync '读中文 Label2.Caption = readCN cVoice.Speak readCN, SVSFlagsAsync '调整参数 play_SERIAL = play_SERIAL + 1 If play_SERIAL > total_WORD Then '读完了回到第一个单词再读 play_SERIAL = 1 End If End If End If End If Exit Sub ErrHandler: End Sub 八)自动重复读 Private Sub eVoice_EndStream(ByVal StreamNumber As Long, ByVal StreamPosition As Variant) '一篇读完触发此事件 On Error GoTo ErrHandler '读文本 If re
评论
    相关推荐
    • MS_TTS.rar
      语音识别解决方案,对MSttp有很好的支持,是学习语音识别的好资料
    • TTS.rar
      TTS语音Visual C++方式实现代码,简单易懂,使用方便,很好用!欢迎下载!!!
    • mpeg4_TTS.rar
      mpeg4实现的软件代码,可以用VC++编译。
    • TTS语音识别项目源码.rar
      汉字语音播放Chinese character voice play Chinese character voice play
    • TTS.rar
      此檔案為TTS语音实例,可以將中文文字資訊轉換為聲音朗讀。
    • TTS.zip
      visual studio 2015 下开发的tts语音简单demo 程序,
    • TTS.pj.rar
      visual basic 6.0 超简的 tts 语音朗读 demo
    • windows TTS Microsoft Speech SDK 5.1安装包以及修复包
      1.先打开setup.exe安装; 2.再安装win7或xp TTS语音引擎修复2.0(必用).exe修复; 3.LangPack再安装语言包; 4.在控制面板可以看到语音32位可以修改控制
    • C++基于TTS组件文本转语音实例
      摘要:VC/C++源码,数据库应用,TTS,语音 C++实现文本转语音示例程序,使用了TTS组件,编译需要准备好TTS组件,否则不能顺利编译,这只是一个例子,要投入使用还需要做不少工作。...运行环境:Windows/Visual C/C++
    • TTS.rar
      windows的文本转语音,需要安装Microsoft的语音模块