Python生成432Hz音频

使用 numpy 来生成信号,

使用 matplotlib 可视化信号,

使用 sounddevice 播放声音。

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

python 复制代码
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 可视化生成的音频信号。

执行结果:

相关推荐
沉下心来学鲁班1 分钟前
DeepAgents 记忆机制:让 AI Agent 拥有“跨对话“的记忆
服务器·人工智能·python
Helix2504 分钟前
Python与其他编程语言优劣势对比:2026初学者选型指南
java·python·教程·编程语言·入门·初学者编程选型
Escalating_xu9 分钟前
【C 语言】字符函数和字符串函数:从 ctype 到 strtok、strerror 全面解析
java·c语言·开发语言
郝学胜-神的一滴33 分钟前
C++ Templates 07:编译报错和调试手段与实战技巧
开发语言·c++·后端·软件工程·visual studio
零基础12333 分钟前
深度强化学习驱动的 Agent 后训练:原理、实践与前沿路线
人工智能·python·机器学习
I Am a robert girl36 分钟前
PhysStream 源码级拆解:流式视频生成如何做到“边生成边控制“
python·音视频·源码解析·视频生成·可控生成·流式生成·物理控制
害人终害己41 分钟前
Redisson 连接 Redis 失败 报错解决方案
java·开发语言
高洁0143 分钟前
数字孪生驱动大模型工业知识库
人工智能·python·深度学习·机器学习·transformer
RS迷途小书童1 小时前
Python+FFmpeg提取大疆无人机MP4内嵌mov_text遥测SRT字幕并做完整性校验
python·ffmpeg·大疆·srt字幕·dji
jimy11 小时前
c++的静态类型和动态类型(二)
开发语言·c++