zoukankan      html  css  js  c++  java
  • C#读取文本播放相应语音【转】

    第一种方案:

      利用微软text to speech引擎(TTS),读取文本

    (1)添加Microsoft Speech Object Library的项目引用

    (2)引入using SpeechLib名称控件

    (3)读取文本

            SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;         SpVoice voice = new SpVoice();

            //默认使用“控制面板”—>“声音”—>“录制”选项卡的“配置”—>“文本到语音转换”—>语言选择中对应项,例如Microsoft Lily或Microsoft Sam

            //此处可采用“预听语音”测试,保证操作系统本身正确配置该语音包,尤其是B/S结构往往会被忽略

            //否则会抛出异常:“没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))”

            voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);         voice.Speak(textBox1.Text, flag);

    (4)语言包的选择(亲测)

    WindowsXP 中默认只安装了Microsoft Sam,而且只能朗读英文,不能读中文,直接略过。(不推荐)

    找了一个Microsoft_TTS_51_chs.msi安装了以后多了一个Microsoft Simplified Chinese语音包,但只能读中文,不能读英文单词,将单词拆解为字母读出(全中文可以)

    Windows Vista/7中默认安装Microsoft Lili,可以中英文混读,但语音效果较好(推荐),但是XP系统无法安装,Microsoft Anna 只能读英文(不推荐)。

    ScanSoft-MeiLing-ChineseMandarinVoice可以在XP下安装,但是多音字识别不好,优点是比较小巧,40M左右。

    NeoSpeech Lily,声音的效果比 Microsoft Lili要好。推荐使用,但是比较大500M左右。

    第二种方案:

    System.Speech.Synthesis(语音合成器)

    让我们看一下关于如何从托管应用程序使用语音合成的示例。作为最典型的一个 UI 输出示例,我将从只说出“Hello, world”的应用程序开始,如图 5 所示。

    <em>using System;
    using System.Speech.Synthesis;
     
    namespace TTS_Console_Sample_1
    {
        class Program
        {
            static void Main(string[] args)
            {
                SpeechSynthesizer synth = new SpeechSynthesizer();
                synth.SpeakText("Hello, world!");
            }
        }
    }</em>

    该示例是一个明显的控制台应用程序,是最近使用 Visual C#® 创建的,其中添加了三行代码。所添加的第一行只引入 System.Speech.Synthesis 命名空间。第二行声明并实例化 SpeechSynthesizer 的实例,它准确表示了其名称的含意:语音合成器。所添加的第三行是对 SpeakText 的调用。这是调用合成器所需的全部。

    默认情况下,SpeechSynthesizer 类使用 Speech 控件面板中默认推荐的合成器。但是它可以使用任何与 SAPI DDI 兼容的合成器。

  • 相关阅读:
    web报表工具FineReport常用函数的用法总结(日期和时间函数)
    web报表工具FineReport常用函数的用法总结(文本函数)
    实例:供应商管理报表需求调研报告
    电信业务支撑报表系统解决方案
    小程序开发快速入门教程(附源码)
    不用代码,10分钟打造属于自己的第一款小程序
    移动端iPhone系列适配问题的一些坑
    【前端统计图】echarts多条折线图和横柱状图实现
    不用代码,10分钟打造属于自己的第一款小程序
    markdown模式的一些语法
  • 原文地址:https://www.cnblogs.com/candyzhmm/p/5692916.html
Copyright © 2011-2022 走看看