![](/img/trans.png)
[英]How can I record voice from microphone in wave format in windows RT?
[英]How can I play a single tone or custom wave with Delphi?
我查了一些代碼,似乎一切都在創造一些數學函數波,但我想要一個單音,或者用自定義單音制作的自定義波。
我讀過這個如何生成不同頻率的連續音?
哪個接近我的答案。 Assumin我將在上面的鏈接中使用waveOutWrite,我似乎無法弄清楚如何為HWAVEOUT中的每個Sample計算放大器/頻率。
在鏈接的代碼中這樣做: Samples[i] := round(vol*sin(omega*t));
假設我想要15kHz freq單音和一些放大器(無關緊要),如何計算樣本[1]?
連續(時間)正弦波可以定義為A*sin(2*PI*f*t)
,其中A
是一些幅度, PI
是,良好,3.14 ......, f
是以赫茲為單位的音調頻率和t
是秒的時間。
現在,因為你沒有連續的時間,因為你的時間是離散的,你用dt*i
代替t
並得到A*sin(2*PI*f*dt*i)
,其中dt
是樣本之間的時間或1/sample rate
, i
是樣本編號。 你可以拼寫為A*sin(2*PI*(f/Fs)*i)
。 請注意,一旦選擇某個采樣率Fs
(采樣/秒或簡稱Hz),最高音調永遠不會大於Fs/2
Hz。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.