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

使用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输出信号

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 首次在rasa中使用form的个人小结
  • stm32 W25Q数据存储
  • C语言的结构体类型
  • Rust Windows下编译 静态链接VCRuntime140.dll
  • 华为 HCIP 认证费用和报名资格
  • 【5G QoS】详解5G QoS端到端工作机制
  • Linux tr命令
  • CMake构建学习笔记16-使用VS进行CMake项目的开发
  • [论文笔记]ChatQA: Surpassing GPT-4 on Conversational QA and RAG
  • 【LLM多模态】文生视频评测基准VBench
  • django-admin自定义功能按钮样式
  • 数据结构之栈和队列的应用
  • 【物联网技术大作业】设计一个智能家居的应用场景
  • 树莓派Pico开发板简介
  • 【网络】高级IO——阻塞IO和非阻塞IO的实现
  • C++类的相互关联
  • HTML-表单
  • idea + plantuml 画流程图
  • JS数组方法汇总
  • Laravel Mix运行时关于es2015报错解决方案
  • LeetCode18.四数之和 JavaScript
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Vue实战(四)登录/注册页的实现
  • windows下mongoDB的环境配置
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 三栏布局总结
  • 跳前端坑前,先看看这个!!
  • 小程序开发之路(一)
  • 一道闭包题引发的思考
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 白色的风信子
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 函数计算新功能-----支持C#函数
  • ​数据链路层——流量控制可靠传输机制 ​
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (8)STL算法之替换
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .libPaths()设置包加载目录
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net core 6 redis操作类
  • .net core 管理用户机密
  • .Net Memory Profiler的使用举例
  • .NET Remoting学习笔记(三)信道
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET技术成长路线架构图
  • .net开发引用程序集提示没有强名称的解决办法
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET牛人应该知道些什么(2):中级.NET开发人员