您的位置:首页 > 文旅 > 旅游 > Python生成432Hz音频

Python生成432Hz音频

2024/10/6 8:38:44 来源:https://blog.csdn.net/songpeiying/article/details/141315297  浏览:    关键词:Python生成432Hz音频

使用 numpy 来生成信号,

使用 matplotlib 可视化信号,

使用 sounddevice 播放声音。

以下生成和播放 432 Hz 的正弦波信号:


import numpy as np
import sounddevice as sd
import matplotlib.pyplot as plt# 生成单音函数
def generate_tone(frequency, duration, sampling_rate):t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False)return 0.5 * np.sin(2 * np.pi * frequency * t)# 生成和弦(多个频率同时播放)
def generate_chord(frequencies, duration, sampling_rate):chord = np.zeros(int(sampling_rate * duration))for freq in frequencies:chord += generate_tone(freq, duration, sampling_rate)return chord / len(frequencies)  # 归一化def fun_music(frequency = 432, sampling_rate = 44100, duration = 2):# 参数设置frequency = 432  # 频率(赫兹)sampling_rate = 44100  # 采样率(赫兹)duration = 2  # 持续时间(秒)# 时间轴t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False)# 生成正弦波信号signal = 0.5 * np.sin(2 * np.pi * frequency * t)# 播放声音sd.play(signal, samplerate=sampling_rate)sd.wait() # 等待声音播放完成# 绘制信号plt.plot(t[:1000], signal[:1000])  # 只绘制前1000个点plt.title(f'Sine Wave - {frequency} Hz')plt.xlabel('Time [s]')plt.ylabel('Amplitude')plt.show()fun_music()
  1. 参数设置:定义了频率为 432 Hz、采样率为 44100 Hz 和持续时间为 2 秒。
  2. 生成时间轴:使用 numpy.linspace 创建时间轴。
  3. 生成正弦波信号:使用 numpy.sin 生成 432 Hz 的正弦波信号。
  4. 播放声音:使用 sounddevice 库的 play 函数播放生成的音频信号。
  5. 绘制信号:使用 matplotlib 可视化生成的音频信号。

 执行结果:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com