2017-10-06 81 views
0

男声覆盖的频率范围为100Hz至8KHz。我可以在Console.Beep中创建一系列不同的频率来创建一个单词吗? Console.Beep支持37 - 32767Hz。 (愤怒频率适合于人声的频率)。 例如使用Console.Beep创建人类语音频率c#

Console.Beep(100, 220); 
Console.Beep(90, 130); 
Console.Beep(125, 240); 
Console.Beep(192, 150); 
Console.Beep(200, 120); 
Console.Beep(90, 130); 
Console.Beep(125, 240); 
Console.Beep(132, 150); 
Console.Beep(200, 220); 
Console.Beep(190, 230); 
Console.Beep(185, 240); 
Console.Beep(192, 250); 
+3

是的,虽然“单词”是无法理解的。运行你的代码给了我一个很好的笑声。 –

+0

这只是一个例子。说一个字我需要数千行。当然不是这样,它会很慢地工作。谢谢你的回答(这个问题似乎有点奇怪,所以我起初有很多负面缩放,即使这个问题最符合逻辑) –

+0

如果你真的想这样做,有更好的方法https:// msdn。 microsoft.com/en-us/library/system.speech.synthesis.speechsynthesizer(v=vs.110).aspx –

回答

3

第二个参数是在毫秒的持续时间,并且它是一个整数,这意味着你可以指定的最小持续时间为1ms,这意味着最大理论采样率,你可以通过此方法实现将是1,000赫兹。

这对语言来说可能太低了(请参阅常用采样率表here),但更重要的是,实际极限将会低得多。 Console.Beep并不意味着以这种方式使用。即使当我用它来播放持续时间相对较长的声音时(比如说,一秒钟),当声音突然停止时,最后还是会有一声“咔嗒”声。当我尝试一连串持续时间为1ms甚至10ms的连续呼叫时,我听到的都是这些点击。您需要使用某种音频库。