zoukankan      html  css  js  c++  java
  • TTS语音合成

    在XP或更高版本系统中,默认安装了英语语音引擎,朗读者是SAM,可以在控制面板-》语音-》文字-语音转换-》里查看,因此如果只需要男声读英文的话就不需要安装任何东西了。不过,如果需要女声读英文或读其它语言的话,就需要安装相应的语音库。微软官网中提供了男声简体中文语音库和男女声英文语音库,不过效果不是太好,如果想获得更好效果的话还是要用其它语音库。

        现在比较优秀的语音库有很多:

    NeoSpeech Lily 汉语普通话女声,可朗读简体、繁体中文,可中英文混读,音质极好。  Microsoft Lili Windows Vista 自带的汉语普通话女声,可中英文混读,音质还可以。只支持Windows Vista。

    英语朗读语音库 (NeoSpeech Paul 男声)

    英语朗读语音库 (NeoSpeech Kate 女声)

    中文朗读语音库 (NeoSpeech Wang 男声)

    日语朗读语音库 (NeoSpeech Misaki 女声)

    英、中、韩、日朗读语音库合集 (NeoSpeech)

    日语朗读语音库 NextUp ScanSoft RealSpeak TTS - Kyoko 22kHz, Japanese(女声)

    其它语音库的设置:用户名必须正确,不然系统使用自带用户 MSSam,可以在控制面板-》语音 中查看用户

    langCN = "VW Kate" 英文女

    langCN = "VW Paul" 英文男

    langCN=  "VW Wang" 中文男

    langCN = "VW Lily" 中文女

    langCN = "MSSimplifiedChineseVoice" 微软自带中文库

    License:effacee1e9a0c118ca2dd64bdf6a66c3cc3d82fbee5a11f7002cb600ec1900e8de006e8f00152800adc100f14a0115d5:*:VoiceText:0:1:Nextup:WindowsNT2KXP::;

    --- Label Print ---

    CODE: VoiceText-02FF-278E-8AE6

    Site Name: Nextup

    Host ID: *

    Expiration Date: unlimited

    Maximum Channel: 1

    Operating System: WindowsNT2KXP

    现在已经有了数款利用TTS技术开发的产品,如文语通、朗读精灵等,可以用它们来阅读TXT小说、网页内容等,还可以将文本内容转换成wav音频,放到MP3,MP4里,脱离了电脑。

    获取所有语音引擎集合:

    Function readch(strsource)
       Set objVoice = CreateObject("SAPI.SpVoice")
       Set colVoice = objVoice.GetVoices()
       objVoice.Volume = 100 '设置音量,0到100,数字越大音量越大
       langCN = "VW Lily"
       For i = 0 To colVoice.Count - 1
            If Right(colVoice(i).Id, Len(langCN)) = langCN Then cnVoice = i
            If Right(colVoice(i).Id, Len(langEN)) = langEN Then enVoice = i
       Next
       'strsource = textch '"今日天气:晴转多云 二十五到二十六摄氏度 北风四到五级"
        '以下语句是逐组朗读
       Set objVoice.Voice = colVoice.Item(cnVoice) '设置语音引擎为简体中文
       objVoice.Speak (strsource)
    End Function
    
    Private Sub Form_Load()
       Set objVoice = CreateObject("SAPI.SpVoice")
       Set colVoice = objVoice.GetVoices()
       For Each Token In colVoice
            VoiceCB.AddItem Token.GetDescription()
       Next
       VoiceCB.ListIndex = 0
       MsgBox "ok"
      Dim textch As String
     textch = "今日天气:晴转多云, 二十五到二十六摄氏度, 北风四到五级,25-26"
     readch (textch)
    End Sub

    转自:http://blog.sina.com.cn/s/blog_5d8945610100ezwj.html

  • 相关阅读:
    使用C++与SFML编写一个简单的撞球游戏Part3——创建游戏启动界面
    生命游戏
    一道面试题
    为目标数字添加逗号分隔,由 baidu.number.comma 想到的
    制作JavaScript选择器(1)解析令牌
    Team Foundation 使用第三方比较工具
    Levenshtein Distance算法
    计算颜色的亮度值
    整理QUnit API
    Scrum笔记整理
  • 原文地址:https://www.cnblogs.com/enjoyprogram/p/2891654.html
Copyright © 2011-2022 走看看