我正在玩高音调的声音。我想生成一个1秒15Khz爆发的MP3文件。有没有一种简单的方法从C或Python做到这一点?我不想使用MATLAB。
答案 0 :(得分:14)
您可以使用Python wave
模块创建一个波形文件,然后将其压缩为MP3。要创建一秒钟15 khz正弦波:
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 :(得分:2)
我会将其分为两部分:
-t
将wave转换为mp3。有一点需要注意的是15KHz是人类听到的非常高的频率,我猜大多数扬声器都无法播放它,因为它超出了它们的截止频率。所以如果你没有听到结果,不要感到惊讶。
答案 2 :(得分:-1)
你试过了吗?
#include<dos.h>
#include<iostream.h>
#include<conio.h>
main()
{
sound(500); // Frequency
delay(1000); // Time
nosound(); // Stop
}