【最后83分】界面上一个button,一个textbox,我点button,系统发音读出textbox里面的值。谢谢 我查了些资料,乱七八糟的很乱,请教高人给出具体步骤,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哇大哥,不是吧,想读出textbox里面的值,必须有这个值对应的发音吗 学习不过可以调用win32api http://download.csdn.net/source/667484 如果 是.NET 3.0 可以使用using System.Speech.Synthesis;SpeechSynthesizer synth = new SpeechSynthesizer();synth.Speak("Hello, world!你好么?");但你的系统必须有 :Microsoft Speech API 5.1不是3.0 只能通过API调用方式来解决了. 我做过排队叫号系统,“请XXX号到X号窗口”,其中X是数字。象一楼说的,分成几个文件,最后合成,就行了。参考。 我用的3.5 API调用,麻烦么。。没用过啊 using SpeechLib;private void button1_Click(object sender, EventArgs e) { SpeechVoiceSpeakFlags spflags = SpeechVoiceSpeakFlags.SVSFlagsAsync; SpVoice voice = new SpVoice(); voice.Speak(textBox1.Text.ToString(), spflags); }开始——》控制面板——》语音——》语音选择——》Microsoft simplrfied chinese_>确定 .net 下语音合成 版本要求:.net 3.0或以上系统要求:Windows xp sp2 ,Windows vista,Windows 2003命名空间:System.Speech.Synthesis示例代码: SpeechSynthesizer synth = new SpeechSynthesizer(); PromptBuilder pb = new PromptBuilder(); synth.SelectVoice("Microsoft Lili"); pb.ClearContent(); pb.AppendText("这里就是您要合成的文字信息"); synth.Speak(pb);http://www.cnblogs.com/onion/archive/2009/02/24/1396914.html http://topic.csdn.net/u/20090426/19/add9a217-076f-46a0-8cda-5d3ae14f2a72.html以前写的.用Windows TTS语音报显卡温度的东东.因为硬件原因不保证一定能在LZ的机器上运行,不过LZ可以参考TTS语言合成引擎的调用部分. 用ms agent 精灵好了public static class HelpAgentControl { public static Agent HelpAgent = null; public static IAgentCtlCharacterEx Character = null; static bool Visible = false; // 虚拟的可见性,不能使用Show/Hide; #region public static void CreateHelpAgent() // 创建助手 /// <summary> /// 创建助手 /// </summary> public static void CreateHelpAgent() { try { HelpAgent = new Agent(); HelpAgent.Connected = true; HelpAgent.Characters.Load(Consts.SERVICE_HELPAGENT_ID, Consts.SERVICE_HELPAGENT_FILENAME); Character = HelpAgent.Characters[Consts.SERVICE_HELPAGENT_ID]; Character.Balloon.FontName = Consts.SERVICE_HELPAGENT_INIT_BALLOON_FONTNAME; Character.Balloon.FontSize = Consts.SERVICE_HELPAGENT_INIT_BALLOON_FONTSIZE; Character.Left = -999; Character.Top = -999; Character.Show(Consts.SERVICE_HELPAGENT_SHOW_FAST); System.Threading.Thread.Sleep(Consts.SERVICE_HELPAGENT_START_SLEEPTIME); Visible = true; DoAction(new Consts.SERVICE_HELPAGENT_ACTION_START(), true); Character.Left = Consts.SERVICE_HELPAGENT_INIT_LEFT; Character.Top = Consts.SERVICE_HELPAGENT_INIT_TOP; Character.AutoPopupMenu = false; } catch { if (Character != null) Character = null; if (HelpAgent != null) { HelpAgent.Connected = false; HelpAgent = null; } Visible = false; return; } } #endregion #region public static void DisposeHelpAgent() // 销毁助手 /// <summary> /// 销毁助手 /// </summary> public static void DisposeHelpAgent() { if (HelpAgent != null) { if (Visible) { DoAction(new Consts.SERVICE_HELPAGENT_ACTION_END(), false); System.Threading.Thread.Sleep(Consts.SERVICE_HELPAGENT_END_SLEEPTIME); ChangeVisiblity(false); } if (HelpAgent.Characters != null) HelpAgent.Characters.Unload(Consts.SERVICE_HELPAGENT_ID); Character = null; HelpAgent.Connected = false; HelpAgent = null; GC.Collect(); } } #endregion #region public static void DoAction(Consts.SERVICE_HELPAGENT_ACTION Action, bool PlayBeforeSay) // 执行动作和说话 /// <summary> /// 执行动作和说话 /// </summary> /// <param name="Action">行为类实例</param> /// <param name="PlayBeforeSay">次序</param> public static void DoAction(Consts.SERVICE_HELPAGENT_ACTION Action, bool PlayBeforeSay) { if (HelpAgent != null) { if (!Visible) return; try { Character.StopAll(null); String Speak = Action.SPEAK().Trim(); String Play = Action.PLAY().Trim(); if (PlayBeforeSay) { if (Play != String.Empty) Character.Play(Action.PLAY()); if (Speak != String.Empty) Character.Speak(Action.SPEAK(), null); } else { if (Speak != String.Empty) Character.Speak(Action.SPEAK(), null); if (Play != String.Empty) Character.Play(Action.PLAY()); } } catch { } } } #endregion #region public static void ChangeVisiblity(bool IsVisible) // 改变可见性 /// <summary> /// 改变可见性 /// </summary> /// <param name="IsVisible">是否可见</param> public static void ChangeVisiblity(bool IsVisible) { try { Visible = true; short OldLeft = Character.Left; short OldTop = Character.Top; if (IsVisible) { Character.Left = -999; Character.Top = -999; Character.Show(Consts.SERVICE_HELPAGENT_SHOW_FAST); System.Threading.Thread.Sleep(Consts.SERVICE_HELPAGENT_START_SLEEPTIME); DoAction(new Consts.SERVICE_HELPAGENT_ACTION_SHOW(), true); Character.Left = OldLeft; Character.Top = OldTop; } else { DoAction(new Consts.SERVICE_HELPAGENT_ACTION_HIDE(), false); Character.Hide(Consts.SERVICE_HELPAGENT_END_FAST); } Visible = IsVisible; } catch { Visible = false; } } #endregion } 不过要读出声音,先要装TTS和配置中文 【急】打印问题。 WPF中 ToggleButton的问题 如何得到Session的剩余时间?AJAX请求会更新Session么? MDI子窗体最大化问题 如何在两个web页面之间传递一个数组啊? dll 文件用maxtocode 加密后,无法使用的问题!! 我用C#写得东东,为什么别人不能用?[在线等待] C# 如何用API获取别的程序的列表信息(DGV控件) 如何将大量数据分批提取进入DataSet? 在这种情况下,如何指定编码格式写并入到xml文件中?在线等! 求助,TreeView的显示问题 帮忙看看进程问题-----------------------------?
哇大哥,不是吧,想读出textbox里面的值,必须有这个值对应的发音吗
不过可以调用win32api
可以使用
using System.Speech.Synthesis;SpeechSynthesizer synth = new SpeechSynthesizer();synth.Speak("Hello, world!你好么?");但你的系统必须有 :Microsoft Speech API 5.1
不是3.0 只能通过API调用方式来解决了.
象一楼说的,分成几个文件,最后合成,就行了。参考。
我用的3.5 API调用,麻烦么。。没用过啊
private void button1_Click(object sender, EventArgs e)
{ SpeechVoiceSpeakFlags spflags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice voice = new SpVoice();
voice.Speak(textBox1.Text.ToString(), spflags);
}
开始——》控制面板——》语音——》语音选择——》Microsoft simplrfied chinese_>确定
版本要求:.net 3.0或以上系统要求:Windows xp sp2 ,Windows vista,Windows 2003命名空间:System.Speech.Synthesis示例代码: SpeechSynthesizer synth = new SpeechSynthesizer();
PromptBuilder pb = new PromptBuilder(); synth.SelectVoice("Microsoft Lili");
pb.ClearContent();
pb.AppendText("这里就是您要合成的文字信息");
synth.Speak(pb);http://www.cnblogs.com/onion/archive/2009/02/24/1396914.html
以前写的.
用Windows TTS语音报显卡温度的东东.
因为硬件原因不保证一定能在LZ的机器上运行,
不过LZ可以参考TTS语言合成引擎的调用部分.
{
public static Agent HelpAgent = null;
public static IAgentCtlCharacterEx Character = null;
static bool Visible = false; // 虚拟的可见性,不能使用Show/Hide; #region public static void CreateHelpAgent() // 创建助手
/// <summary>
/// 创建助手
/// </summary>
public static void CreateHelpAgent()
{
try
{
HelpAgent = new Agent();
HelpAgent.Connected = true;
HelpAgent.Characters.Load(Consts.SERVICE_HELPAGENT_ID, Consts.SERVICE_HELPAGENT_FILENAME);
Character = HelpAgent.Characters[Consts.SERVICE_HELPAGENT_ID];
Character.Balloon.FontName = Consts.SERVICE_HELPAGENT_INIT_BALLOON_FONTNAME;
Character.Balloon.FontSize = Consts.SERVICE_HELPAGENT_INIT_BALLOON_FONTSIZE;
Character.Left = -999;
Character.Top = -999;
Character.Show(Consts.SERVICE_HELPAGENT_SHOW_FAST);
System.Threading.Thread.Sleep(Consts.SERVICE_HELPAGENT_START_SLEEPTIME);
Visible = true;
DoAction(new Consts.SERVICE_HELPAGENT_ACTION_START(), true);
Character.Left = Consts.SERVICE_HELPAGENT_INIT_LEFT;
Character.Top = Consts.SERVICE_HELPAGENT_INIT_TOP;
Character.AutoPopupMenu = false;
}
catch
{
if (Character != null)
Character = null;
if (HelpAgent != null)
{
HelpAgent.Connected = false;
HelpAgent = null;
}
Visible = false;
return;
}
}
#endregion #region public static void DisposeHelpAgent() // 销毁助手
/// <summary>
/// 销毁助手
/// </summary>
public static void DisposeHelpAgent()
{
if (HelpAgent != null)
{
if (Visible)
{
DoAction(new Consts.SERVICE_HELPAGENT_ACTION_END(), false);
System.Threading.Thread.Sleep(Consts.SERVICE_HELPAGENT_END_SLEEPTIME);
ChangeVisiblity(false);
}
if (HelpAgent.Characters != null)
HelpAgent.Characters.Unload(Consts.SERVICE_HELPAGENT_ID);
Character = null;
HelpAgent.Connected = false;
HelpAgent = null;
GC.Collect();
}
}
#endregion #region public static void DoAction(Consts.SERVICE_HELPAGENT_ACTION Action, bool PlayBeforeSay) // 执行动作和说话
/// <summary>
/// 执行动作和说话
/// </summary>
/// <param name="Action">行为类实例</param>
/// <param name="PlayBeforeSay">次序</param>
public static void DoAction(Consts.SERVICE_HELPAGENT_ACTION Action, bool PlayBeforeSay)
{
if (HelpAgent != null)
{
if (!Visible)
return;
try
{
Character.StopAll(null);
String Speak = Action.SPEAK().Trim();
String Play = Action.PLAY().Trim();
if (PlayBeforeSay)
{
if (Play != String.Empty)
Character.Play(Action.PLAY());
if (Speak != String.Empty)
Character.Speak(Action.SPEAK(), null);
}
else
{
if (Speak != String.Empty)
Character.Speak(Action.SPEAK(), null);
if (Play != String.Empty)
Character.Play(Action.PLAY()); }
}
catch
{
}
}
}
#endregion #region public static void ChangeVisiblity(bool IsVisible) // 改变可见性
/// <summary>
/// 改变可见性
/// </summary>
/// <param name="IsVisible">是否可见</param>
public static void ChangeVisiblity(bool IsVisible)
{
try
{
Visible = true;
short OldLeft = Character.Left;
short OldTop = Character.Top;
if (IsVisible)
{
Character.Left = -999;
Character.Top = -999;
Character.Show(Consts.SERVICE_HELPAGENT_SHOW_FAST);
System.Threading.Thread.Sleep(Consts.SERVICE_HELPAGENT_START_SLEEPTIME);
DoAction(new Consts.SERVICE_HELPAGENT_ACTION_SHOW(), true);
Character.Left = OldLeft;
Character.Top = OldTop;
}
else
{
DoAction(new Consts.SERVICE_HELPAGENT_ACTION_HIDE(), false);
Character.Hide(Consts.SERVICE_HELPAGENT_END_FAST);
}
Visible = IsVisible;
}
catch
{
Visible = false;
}
}
#endregion
}