TTS5.1求教。。。。。。。。。。。。。

此后三年 2015-04-22 09:19:25
我下载安装了微软TTS5,1的sdk, 其中c#的demo可以发声,但是效果不好,于是我又安装了别的语音库, 现在的问题是我怎么用现有的代码调用新安装的语音库呀啊。。。求助
SDK

语音库
代码
 using SpeechLib;
.........
private void btnSpeak_Click(object sender, System.EventArgs e)
{
//Create a TTS voice and speak.
try
{
SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice Voice = new SpVoice();

Voice.Speak(txtSpeakText.Text, SpFlags);
}
catch(Exception error)
{
MessageBox.Show("Speak error", "SimpleTTS", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}
...全文
242 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
音符2013 2015-05-08
  • 打赏
  • 举报
回复
窗口放控件 listBox1 把语音库加载上 int i = 0; foreach(DotNetSpeech.SpObjectToken st in Speaker.GetVoices(String.Empty, String.Empty)) { listBox1.Items.Add(st.GetDescription(i)); i++; } 调用选择项里的语音库 voice.Voice = voice.GetVoices(String.Empty, String.Empty).Item(listBox1.SelectedIndex);
此后三年 2015-04-28
  • 打赏
  • 举报
回复
speach = new Speach(SpeachIndex); 这里的Index就是你语音包的哪几个选项了 SpeachIndex 关键就是这个值是怎么得到的, 如何确定SpeachIndex的取值。
本拉灯 2015-04-27
  • 打赏
  • 举报
回复
引用 4 楼 a30037338 的回复:
[quote=引用 3 楼 wyd1520 的回复:] 你安装安语音库,在DEMO里就能选择哪种发音了。
要是有demo就不那么费事了[/quote]




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DotNetSpeech;

namespace Strongsoft.Module.ThreeDimensional
{
    /// <summary>
    /// 文本发音
    /// </summary>
    public class Speach
    {
        private static Speach _Instance = null;
        private SpVoiceClass voice = null;
        private int _selectedindex;
      
        /// <summary>
        /// 音量
        /// </summary>
        public int Volume
        {
            get
            {
                return voice.Volume;
            }

            set
            {
                voice.Volume=value;
                //voice.SetVolume((ushort)value);
            }
        }

        /// <summary>
        /// 语速
        /// </summary>
        public int Rate
        {
            get
            {
                return voice.Rate;
            }

            set
            {
               voice.Rate = value;
                //voice.SetRate(value);
            }
        }

        /// <summary>
        /// 语音类型
        /// </summary>
        public int SelectIndex
        {
            get {

                return _selectedindex;
            }
            set {
                _selectedindex = value;
            }
        }

        /// <summary>
        /// 构造函数
        /// </summary>
        public Speach()
        {
            BuildSpeach();
        }

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="selectedindex">发音类型</param>
        public Speach(int selectedindex)
        {
            
            BuildSpeach();
            _selectedindex = selectedindex;
        }

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="volume">音量</param>
        /// <param name="rate">语速</param>
        public Speach(int volume, int rate)
        {
            this.Volume = volume;
            this.Rate = rate;
        }

        /// <summary>
        /// 实列化
        /// </summary>
        /// <returns></returns>
        public static Speach Instance()
        {
            if (_Instance == null)
                _Instance = new Speach();
            return _Instance;
        }

        /// <summary>
        /// 初始化
        /// </summary>
        private void BuildSpeach()
        {
            if (voice == null)
            {
                _selectedindex = 0;
                voice = new SpVoiceClass();
            }
        }

        /// <summary>
        /// 朗读文本
        /// </summary>
        /// <param name="strSpeack"></param>
        public void Speak(string strSpeack)
        {
            try
            {
                voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(_selectedindex);
                voice.Speak(strSpeack, SpeechVoiceSpeakFlags.SVSFlagsAsync);
            }

            catch (Exception err)
            {
                throw (new Exception("发生一个错误:" + err.Message));
            }
        }

        /// <summary>
        /// 继续
        /// </summary>
        public void Resume()
        {
            voice.Resume();
        }

        /// <summary>
        /// 暂停
        /// </summary>
        public void Pause()
        {
            voice.Pause();
        }

        /// <summary>
        /// 停止
        /// </summary>
        public void Stop()
        {
            voice.Speak("", SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);
        }
    }
}






  /// <summary>
        /// 初始化语音
        /// </summary>
        private void IniSpeach()
        {
            speach = new Speach(SpeachIndex);  这里的Index就是你语音包的哪几个选项了
            speach.Volume = 100;
            speach.Rate = SpeachRate;
        }

 
此后三年 2015-04-27
  • 打赏
  • 举报
回复
引用 3 楼 wyd1520 的回复:
你安装安语音库,在DEMO里就能选择哪种发音了。
要是有demo就不那么费事了
本拉灯 2015-04-24
  • 打赏
  • 举报
回复
你安装安语音库,在DEMO里就能选择哪种发音了。
此后三年 2015-04-22
  • 打赏
  • 举报
回复
引用 1 楼 johnliuyuan 的回复:
帮忙顶一下,其他的语音库没有文档吗?
木有文档, 安装目录下都是语音库的数据。
john_QQ:2335298917 2015-04-22
  • 打赏
  • 举报
回复
帮忙顶一下,其他的语音库没有文档吗?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧