我正在玩高调的声音。我想用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. 使用Adobe Air生成无声音频文件
- 5. 使用W3C网络语音API生成音频文件
- 6. 使用语音框架从音频文件生成字幕iOS
- 7. 我可以生成音调(音乐)吗?
- 8. jQuery声音或音调
- 9. 播放声音文件并应用音调 - Xcode 8 - Mac
- 10. 使用系统声音播放声音
- 11. 使用Superpowered在Android上对音频文件应用回声和音调变化
- 12. 从文件中混合音频与产生的声音
- 13. 控制音频文件声音
- 14. 生成静音音轨
- 15. 使用声音文件移动div
- 16. 使用拼音声音的文字转语音
- 17. 使用python进行声音生成/合成?
- 18. JavaScript声音合成
- 19. 与声音合成
- 20. 声音合成用C#
- 21. 从声音文件生成matlab中的2通道矢量
- 22. 播放生成的声音J2ME
- 23. 在Haskell生成.wav声音数据
- 24. 生成声音并在WebAudio中录制
- 25. 播放短暂生成的声音
- 26. 程序声音生成算法?
- 27. 以编程方式生成声音
- 28. 生成整数声音在C#
- 29. 在Python中生成正弦波声音
- 30. 当其他声音文件播放时调低音量/暂停音乐
记住的15KHz的音调可具有多种形状,即正弦波,方波,三角波,锯齿波等 – dreamlax 2011-12-16 03:50:59
我将是一个解决方案很感兴趣,这直接生成mp3。创建一些wave文件并使用lame压缩它是一个非常明显但无聊的解决方案。一些小的C编,它可以产生一个带有任何解码器可以播放的音调(15kHz或其他)的mp3,真是太棒了。任何MP3文件的极客? – 2011-12-16 09:28:04