当前位置: 首页 > article >正文

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 的文件。

http://www.kler.cn/a/612387.html

相关文章:

  • vue3中,route4,获取当前页面路由的问题
  • 力扣HOT100之普通数组:238. 除自身以外数组的乘积
  • 【问题解决】Postman 请求报错 500 之 Request processing failed
  • Vue 中为什么data属性是一个函数而不是一个对象?
  • 深入解析 MyBatis-Plus 批量操作:原理、实现与性能优化
  • vue 3 深度指南:从基础到全栈开发实践
  • cocos creator 笔记-路边花草
  • 【nvm】nvm所有命令
  • 春日焕新居:约克VRF中央空调,科技赋能,带你开启健康呼吸新时代
  • 接口测试中数据库验证,怎么解决?
  • 练习:猜数字小游戏
  • 【活动回顾】StarRocks Singapore Meetup #2 @Shopee
  • 解释 let 和 const 的作用域及用法。
  • Snowflake 算法的实现
  • docker创建registry镜像仓库2.8版本
  • 基于springboot人脸识别的社区流调系统(源码+lw+部署文档+讲解),源码可白嫖!
  • Spring中拦截器(Interceptor)与过滤器(Filter)的区别
  • AndroidStudio无法识别连接夜神模拟器
  • JVM动态代理和JDK动态代理介绍
  • 数字化工厂建设:制造业的智能化革命 尤劲恩