python生成一个16k的音频正弦波数据

一 源码:

    下面为你提供一个 Python 示例代码,借助 numpy 库来生成 16kHz 采样率的正弦波音频数据,同时使用 scipy 库将生成的数据保存为 .wav 文件。

import numpy as np
from scipy.io import wavfile

# 采样率,单位为 Hz
sample_rate = 16000

# 正弦波的频率,单位为 Hz
frequency = 440

# 音频时长,单位为秒
duration = 5

# 生成时间轴
t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False)

# 生成正弦波数据
sine_wave = np.sin(2 * np.pi * frequency * t)

# 将音频数据转换为 16 位整数
sine_wave = (sine_wave * 32767).astype(np.int16)

# 保存为 .wav 文件
wavfile.write('sine_wave_16k.wav', sample_rate, sine_wave)

二 源码解析

  1. 导入必要的库:导入 numpy 用于生成正弦波数据,导入 scipy.io.wavfile 用于保存音频数据为 .wav 文件。
  2. 设置参数
    • sample_rate:采样率设为 16000Hz。
    • frequency:正弦波的频率设为 440Hz(A4 音)。
    • duration:音频时长设为 5 秒。
  3. 生成时间轴:使用 np.linspace 函数生成从 0 到 duration 的时间轴,点数为 sample_rate * duration
  4. 生成正弦波数据:依据正弦波公式 sin(2 * pi * f * t) 生成正弦波数据。
  5. 数据类型转换:将生成的正弦波数据乘以 32767 并转换为 16 位整数类型,这是因为 .wav 文件通常使用 16 位整数来存储音频数据。
  6. 保存音频文件:使用 wavfile.write 函数将生成的音频数据保存为名为 sine_wave_16k.wav 的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值