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

相关文章:
使用Ubuntu耳机输出正弦波信号
最近有一个项目想使用喇叭发出一个标准的正弦波测试信号,故记录下操作过程 sudo apt install libasound2-dev 否则有可能会报错: alsaaudio.c:28:10: fatal error: alsa/asoundlib.h: No such file or directory 安装pyalsaaudio: pip …...
Python编程 - 协程
前言 上篇文章主要讲述了python的进程,进程池和进程与线程对比等知识,接下来这篇文章再唠唠python的协程,让我们继续往下看! 一、协程的使用 python 中的协程是一种用于处理并发任务的高效工具,它依赖于 asyncio 库以…...
如何在没有备份的情况下恢复 Mac 上丢失的数据
Mac 是您数字世界的中心。它上面可能保存着照片和视频等回忆,以及您不再联系的朋友和家人发来的旧电子邮件。您可能花了数小时导入整个 CD 收藏。您还可能保存着重要文档,例如演示文稿和工作文件、家庭账户或学校或大学的作业。 如果由于某种原因您丢失…...
SpringBoot:解析excel
解析Excel文件,可以使用Apache POI库 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version> </dependency> 上代码: /*** <b>Functio…...
Tomcat窗口运行修改窗口标题显示项目日期时间
1、修改配置文件catalina.bat文件 在Tomcat路径 bin文件夹下 set TITLETomcat.xxx.Server [%DATE% %TIME%] 显示:Tomcat.xxx,Server [2024/09.18 周三 12:01:30]...
8-----手机机型维修工具助手 功能较全 涵盖解锁 刷机 修复等选项 维修推荐
上图是一款功能较全的维修加密狗。目前可以无限制 任何人使用。看图片可以了解其中涵盖刷机 解锁 修复分区 查看短接图 安装驱动 修复基带等等选项。而且其中有针对各个机型型号的对应功能操作。以及一些rec5.0相关的操作选项。 通过此博文了解 ★★★★★此工具涵盖的一些…...
集群聊天服务器项目【C++】(四)cmake介绍和简单使用
我们上次用shell命令和vscode编译链接muduo库服务端代码,本章节实现编写CMakeLists.txt来编译项目。本次简单介绍CMake,并用Cmake编译上次的muduo服务器代码。 1.为什么使用cmake 我们在编译项目时,如果编写Makefile的话,常常会…...
Nginx+Tomcat(负载均衡、动静分离)
目录 一、Nginx概述 1.Nginx应用 二、正向代理和反向代理 1.正向代理 1.1主要作用 1.2工作原理 2.反向代理 2.1主要作用 2.2工作原理 三、负载均衡模式 1.轮询 2.最少连接数 3.IP 哈希 4.加权轮询 5.最少时间算法 6.一致性哈希 四、规划部署负载均衡和反向…...
前端分段式渲染较长文章
实现思路: 1. 后端返回整篇文章。 2. JavaScript 分段处理:将文章按一定的字符或段落长度分割,然后逐步将这些段落追加到页面上。 3. 定时器或递归调用:使用 setInterval 或 setTimeout 来控制段落的逐步渲染。 代码实现示例 …...
C#程序员的堕落从nuget开始:将自己的代码发布到nuget
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
【C/C++语言系列】malloc、calloc和realloc区别和用法
这三个函数都是在堆区分配内存的函数,头文件都是: #include<stdlib.h>下面分别介绍这三个函数: malloc: 函数原型: void *malloc(unsigned int num_bytes);功能:堆区开辟一段内存空间 num_nytes&…...
【Linux】POSIX信号量与、基于环形队列实现的生产者消费者模型
目录 一、POSIX信号量概述 信号量的基本概念 信号量在临界区的作用 与互斥锁的比较 信号量的原理 信号量的优势 二、信号量的操作 1、初始化信号量:sem_init 2、信号量申请(P操作):sem_wait 3、信号量的释放(…...
Spring Boot-消息队列相关问题
Spring Boot 消息队列相关问题及解决方案 消息队列(Message Queue, MQ)在分布式系统中的应用越来越广泛,尤其是在解耦系统、异步通信、负载均衡等场景中起到了至关重要的作用。消息队列为不同的服务提供了一种异步通信的机制,使得…...
[数据集][目标检测]岩石种类检测数据集VOC+YOLO格式4766张9类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4766 标注数量(xml文件个数):4766 标注数量(txt文件个数):4766 标注…...
图像分割基本知识
计算机视觉和图像处理 Tensorflow入门深度神经网络图像分类目标检测图像分割 图像分割 一、目标分割1.1 图像分割的定义1.2 任务类型1.2.1 任务描述1.2.2 任务类型 二、语义分割2.1 FCN网络2.1.1网络结构 2.2 Unet网络 三、UNet案例3.1 数据集获取3.1.1 设置相关信息3.1.2 图像…...
LIN总线CAPL函数——干扰LIN帧响应段(linInvertRespBit )
🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...
【30天玩转python】网络编程基础
网络编程基础 网络编程是指编写能够在网络上进行通信的程序,通过网络进行数据的发送与接收。Python 提供了许多库和工具来进行网络编程,如 socket、urllib 和 requests。在这篇文章中,我们将介绍网络编程的基础知识,并演示如何使…...
【PCB工艺】如何实现PCB板层间的互连
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言①、什么是通孔②、通孔是怎样产生的③、通孔种类④、盘中孔⑤、设计建议 前言 送给大学毕业后找不到奋斗方向的你…...
FastAPI--如何自定义Docs UI,包括多个APP、静态资源、元数据等
如何mount 一个FastAPI Application? “Mounting” means adding a completely “independent” application in a specific path, that then takes care of handling everything under that path, with the path operations declared in that sub-application. 示例代码 主…...
【FPGA XDMA AXI Bridge 模式】PCIe:BARs 和 AXI:BARs 含义解析
一. XDMA IP核两种模式 Xilinx的 DMA/Bridge Subsystem for PCI Express IP核中,支持普通的XDMA模式,但是这种模式只允许主机端发起PCIe 读写请求,FPGA内部无法主动发起读写请求,也即FPGA无法主动读写HOST的内存。 而该IP核的另…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...
