2017-10-06 118 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的連續呼叫時,我聽到的都是這些點擊。您需要使用某種音頻庫。