【问题标题】:Play voice words sounds using Console.Beep .Net使用 Console.Beep .Net 播放语音单词的声音
【发布时间】:2013-01-05 19:08:12
【问题描述】:

我使用 VS 2010、.Net 3.5、Win7 64 位。

我可以将 Console.Beep 用于“模拟”人类声音(声音),也许会产生合成声音吗?

例如,使用 Beep 来“模拟”单词“Error”的发音?有没有关于它的样本?

另一个使用 Console.Beep 播放音乐和弦和音符的示例。

有什么方法可以让 Console.Beep 播放任何听起来更像和弦或音符的声音(语音、单词错误)?

我只想使用 Console.Beep。(如果可能的话,也许) 模拟,不是真实的声音。我不介意这听起来像 R2D2。


How can I make the computer beep in C#?

弹奏和弦、音符
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/6620fd81-974a-40d1-8599-66d6c7c7d22d/

http://oguzkoroglu.net/post/2011/01/16/ConsoleBeep().aspx

【问题讨论】:

  • 人类语言和音乐是大量频率的混合,其强度随时间迅速变化。 Console.Beep() 两者都不能,它的声音永远不会比 R2D2 好。

标签: c# console voice beep


【解决方案1】:

不,这是不可能的

你可以在System.Speech.Synthesis Namespace找到你需要的一切

using System;
using System.Speech.Synthesis;

namespace SampleSynthesis
{
  class Program
  {
    static void Main(string[] args)
    {

      // Initialize a new instance of the SpeechSynthesizer.
      SpeechSynthesizer synth = new SpeechSynthesizer();

      // Configure the audio output. 
      synth.SetOutputToDefaultAudioDevice();

      // Speak a string.
      synth.Speak("This example demonstrates a basic use of Speech Synthesizer");

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }
  }
}

SpeechSynthesizer 类提供对安装在主机上的语音合成引擎功能的访问。已安装的语音合成引擎由声音表示,例如 Microsoft Anna。

http://msdn.microsoft.com/en-us/library/system.speech.synthesis.speechsynthesizer.aspx

【讨论】:

  • 使用 Speech.Synthesis 的先决条件是什么?任何.net 程序集?是否在 Windows 中安装了任何 Win32 API 或组件?
  • 我已经编辑了我的答案。您还需要添加 System.Speech 作为参考
  • System.Speech 在 Windows XP 32 位、Windows 7 64 位中运行良好?关于 System.Speech 的另一个系统要求(任何 win32 api:kernel32,...)?
  • 从 windows XP 工作正常(您不需要安装任何东西,因为它是 windows 安装的一部分)
  • 仅安装了语音,Microsoft Anna(美国英语)。如何为 System.Speech 安装更多语音(西班牙语)?
【解决方案2】:

嘿=)我也在考虑这个,所以我搜索了网络但找不到任何东西。 我自己做了一点工作并想出了这个=)。 它工作得很好!

我在“公共部分类 Form1 : Form”中创建了 1 个随机数 (int) 生成器,因此它将加载 @start。

代码:

    private Random randomgen = new Random();

下面我为 8 种不同的声音制作了整数,并为不同的速度制作了 8 个整数。

下面代码中的“beepgen1”直到“8”是声音的频率 37-7000 赫兹 有关“Console.Beep(FREQUENCY, MILISEC)”的更多信息,请参阅this 链接

示例将此代码放在按钮下,您的电脑会发出哔声@ 1000 赫兹和 100 毫秒长。

"Console.Beep(1000, 100)"

            int beepgen1, beepgen2, beepgen3, beepgen4, beepgen5, beepgen6, beepgen7, beepgen8, beepgenn1, beepgenn2, beepgenn3, beepgenn4, beepgenn5, beepgenn6, beepgenn7, beepgenn8;

            beepgen1 = (randomgen.Next(37, 7000));
            beepgen2 = (randomgen.Next(37, 6000));
            beepgen3 = (randomgen.Next(37, 6000));
            beepgen4 = (randomgen.Next(37, 7000));
            beepgen5 = (randomgen.Next(37, 8000));
            beepgen6 = (randomgen.Next(37, 7000));
            beepgen7 = (randomgen.Next(37, 7000));
            beepgen8 = (randomgen.Next(37, 5000));
            beepgenn1 = (randomgen.Next(50, 200));
            beepgenn2 = (randomgen.Next(50, 250));
            beepgenn3 = (randomgen.Next(50, 300));
            beepgenn4 = (randomgen.Next(50, 200));
            beepgenn5 = (randomgen.Next(50, 250));
            beepgenn6 = (randomgen.Next(50, 200));
            beepgenn7 = (randomgen.Next(50, 300));
            beepgenn8 = (randomgen.Next(50, 250));

            Console.Beep(beepgen1, beepgenn1);
            Console.Beep(beepgen2, beepgenn2);
            Console.Beep(beepgen3, beepgenn3);
            Console.Beep(beepgen4, beepgenn4);
            Console.Beep(beepgen5, beepgenn5);
            Console.Beep(beepgen6, beepgenn6);
            Console.Beep(beepgen7, beepgenn7);
            Console.Beep(beepgen8, beepgenn8);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2014-08-15
    • 2014-04-01
    相关资源
    最近更新 更多