我正在玩高調的聲音。我想用1秒鐘的15Khz突發產生一個MP3文件。有沒有簡單的方法來從C或Python做到這一點?我不想使用MATLAB。使用15Khz音調生成聲音文件
8
A
回答
14
您可以使用Python的wave
模塊創建一個wave文件,然後將其壓縮爲MP3。要創建一個秒鐘15KHZ正弦波:
import math
import wave
import struct
nchannels = 1
sampwidth = 2
framerate = 44100
nframes = 44100
comptype = "NONE"
compname = "not compressed"
amplitude = 4000
frequency = 15000
wav_file = wave.open('15khz_sine.wav', 'w')
wav_file.setparams((nchannels, sampwidth, framerate, nframes, comptype, compname))
for i in xrange(nframes):
sample = math.sin(2*math.pi*frequency*(float(i)/framerate))*amplitude/2
wav_file.writeframes(struct.pack('h', sample))
wav_file.close()
-1
你試過:
#include<dos.h>
#include<iostream.h>
#include<conio.h>
main()
{
sound(500); // Frequency
delay(1000); // Time
nosound(); // Stop
}
+0
這個庫從過去是如此的激動人心,但它今天運行的平臺是什麼? – 2011-12-16 03:46:37
2
我會打破這種成2件:
- 使用C++庫(如libsndfile庫)
- 轉換波形文件創建波形文件MP3使用實用工具(如lame)。這是一個命令行工具,可以從你的C程序中調用。請參閱
-t
將wave轉換爲mp3。
有一點需要注意的是15KHz是非常高的頻率被人類聽到,我猜大多數揚聲器不能播放它,因爲它超過了它們的截止頻率。所以如果你沒有聽到結果,不要感到驚訝。
相關問題
- 1. 使用javax.sound.sampled生成聲音
- 2. 聲音生成或聲音文件連接PHP
- 3. 在Windows Phone 8.1應用程序中生成音調或聲音
- 4. 使用OpenSL播放生成聲音
- 5. 使用節日生成音頻文件
- 6. 使用Adobe Air生成無聲音頻文件
- 7. 生成聲音 - PCM(Android - Java)
- 8. 播放生成的聲音
- 9. javascript生成方波聲音
- 10. 使用語音框架從音頻文件生成字幕iOS
- 11. 使用W3C網絡語音API生成音頻文件
- 12. 我可以生成音調(音樂)嗎?
- 13. 生成簡單的音樂/音調?
- 14. jQuery聲音或音調
- 15. Flash:爲上傳的聲音生成/顯示聲音波形
- 16. 播放聲音文件並應用音調 - Xcode 8 - Mac
- 17. 使用系統聲音播放聲音
- 18. 使用配置文件禁用聲音
- 19. 使用Superpowered在Android上對音頻文件應用回聲和音調變化
- 20. 從文件中混合音頻與產生的聲音
- 21. 控制音頻文件聲音
- 22. 生成靜音音軌
- 23. 使用聲音文件移動div
- 24. 使用Actionscript 3文件播放聲音
- 25. 使用拼音聲音的文字轉語音
- 26. 使用python進行聲音生成/合成?
- 27. JavaScript聲音合成
- 28. 與聲音合成
- 29. 聲音合成用C#
- 30. 在Haskell生成.wav聲音數據
記住的15KHz的音調可具有多種形狀,即正弦波,方波,三角波,鋸齒波等 – dreamlax 2011-12-16 03:50:59
我將是一個解決方案很感興趣,這直接生成mp3。創建一些wave文件並使用lame壓縮它是一個非常明顯但無聊的解決方案。一些小的C編,它可以產生一個帶有任何解碼器可以播放的音調(15kHz或其他)的mp3,真是太棒了。任何MP3文件的極客? – 2011-12-16 09:28:04