利用Python进行音频信号处理和音乐生成
import numpy as np
import sounddevice as sd
import matplotlib.pyplot as plt
# 音频信号生成函数
def generate_audio_signal(frequency, duration, amplitude=1.0, sample_rate=44100):
t = np.linspace(0, duration, duration * sample_rate, False)
signal = amplitude * np.sin(2 * np.pi * frequency * t)
return signal
# 播放音频函数
def play_audio(signal, sample_rate):
sd.play(signal, sample_rate)
sd.wait()
# 可视化音频函数
def visualize_audio(signal, sample_rate):
time = np.arange(len(signal)) / sample_rate
plt.figure()
plt.plot(time, signal)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.title('Audio Waveform')
plt.show()
# 示例使用
frequency = 440 # 音调频率(A4)
duration = 1 # 持续时间1秒
amplitude = 0.5 # 振幅
sample_rate = 44100 # 采样率
# 生成音频信号
audio_signal = generate_audio_signal(frequency, duration, amplitude, sample_rate)
# 播放音频
print("播放音频...")
play_audio(audio_signal, sample_rate)
# 可视化音频波形
visualize_audio(audio_signal, sample_rate)
这段代码首先导入了必要的Python库,然后定义了一个函数用于生成音频信号,另一个函数用于播放音频,还有一个函数用于将音频信号可视化。最后,代码示例展示了如何设置音调频率、持续时间和振幅,并生成、播放和可视化一个音频信号。
评论已关闭