使用Ubuntu耳机输出正弦波信号

最近有一个项目想使用喇叭发出一个标准的正弦波测试信号,故记录下操作过程

sudo apt install libasound2-dev

否则有可能会报错:

        alsaaudio.c:28:10: fatal error: alsa/asoundlib.h: No such file or directory  

安装pyalsaaudio:

pip install pyalsaaudio

安装numpy:

pip install numpy

执行如下python代码可以实现播放5秒的1Khz正弦波

import numpy as np
import alsaaudio

# 设置参数
duration = 5.0  # 持续时间(秒)
frequency = 1000.0  # 正弦波频率(Hz)
sample_rate = 44100  # 采样率(Hz)
amplitude = 0.8  # 振幅(范围 0.0 到 1.0)

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

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

# 转换为 16-bit PCM 格式
sine_wave = np.int16(sine_wave * 32767)

# 创建 ALSA 播放器
playback = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK, alsaaudio.PCM_NORMAL)
playback.setchannels(1)  # 单声道
playback.setrate(sample_rate)
playback.setformat(alsaaudio.PCM_FORMAT_S16_LE)
playback.setperiodsize(1024)

# 播放音频
playback.write(sine_wave.tobytes())
playback.close()

如图所示标准的1KHz输出信号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值