目录1.分离音频CLAP文本 - 音频对比模型 推荐### YAMNet首选### PANNs羽毛球击球检测1.分离音频ffmpeg -i yu_0922.mp4 -vn -acodec pcm_s16le output.wavCLAP文本 - 音频对比模型 推荐- 文本 - 音频对比模型HuggingFace 直接加载- 用法输入文字描述羽毛球击球声、球拍打框声、运动鞋摩擦地面、人声模型输出音频和这些文本的相似度打分- 优点**不需要标注数据**录几段球场音频就能测试能不能区分击球支持短脉冲声音- 缺点推理开销偏大不太适合嵌入式实时跑## 2. 轻量模型适合本地 / 手机 / 嵌入式实时检测推荐工程落地### YAMNet首选Google 开源AudioSet 预训练输出 521 类环境音频同时输出音频 embedding 向量TensorFlow- 模型很小十几 MB可转 TFLite低延迟适合流式持续检测击球事件- 使用方式**提取 embedding再接一个简单分类头少量击球录音微调**就能识别击球 / 打杆 / 噪音- 输入16kHz 单声道 wav正好匹配击球短时脉冲音频- 16kHz 单声道十几 MB可转 TFLite 跑手机 / 嵌入式支持流式逐帧检测拿到每次拍球的时间戳- 直接跑就能识别**篮球拍地弹跳**不用训练- 局限原生分不清「篮网进球声、打板、打铁」球场嘈杂人声、球鞋摩擦会带来误报想区分### PANNs音频事件检测常用 CNN 模型支持定位**事件发生时间点**哪一秒击球HuggingFace、PaddlePaddle 都有实现适合不仅要判断 “是不是击球”还要拿到击球发生的时间戳## 3. 高精度音频 Transformer有标注数据集时用### ASTAudio Spectrogram TransformerMIT 开源音频 TransformerAudioSet 训练音频分类精度高适合你收集几十上百条标注好的击球、打框、吊球、杀球音频做精细分类区分不同击球类型缺点显存、算力开销大于 YAMNet## 4. 额外备选- SenseVoiceFunASR主打语音识别但附带音频事件检测适合球场同时有人声的混合音频场景- HuBERT / Wav2Vec2语音预训练模型可以提取波形特征做迁移学习对冲击音表现一般不优先推荐### 4. AST如果你收集了一批球场音频想精细区分运球 / 打板 / 进球唰声 / 打铁就用 AST 微调分类精度最高羽毛球击球检测最好还是音频分类识别击球import os import librosa import numpy as np from scipy.signal import find_peaks import soundfile as sf def extract_hit_audio_segments(wav_path, out_prefixhit_segment): 提取击球音频峰值切割出每一段击球音频 :param wav_path: 输入wav文件路径 :param out_prefix: 输出片段文件名前缀 :return: 峰值时间列表 [(start_sec, end_sec), ...] # 加载音频统一采样率22050 y, sr librosa.load(wav_path, sr22050) # 计算RMS能量包络 frame_length 512 hop_length 256 rms librosa.feature.rms(yy, frame_lengthframe_length, hop_lengthhop_length)[0] # 找能量峰值击球尖峰 peaks_idx, peak_props find_peaks( rms, height0.1, # 最小能量阈值根据你的音频调 distance70 # 帧间隔防止同一击球识别多个峰 ) # 帧转秒 frame_time hop_length / sr peak_times peaks_idx * frame_time print(f检测到击球峰值时间(秒): {peak_times.round(3)}) # 【核心】以峰值为中心截取片段峰值前0.15s ~ 峰值后0.35s pre 0.15 post 0.35 segments [] for i, t_peak in enumerate(peak_times): t_start t_peak - pre t_end t_peak post # 边界保护不能小于0不能超过音频总长 t_start max(0.0, t_start) t_end min(y.shape[0]/sr, t_end) # 时间转采样点 start_sample int(t_start * sr) end_sample int(t_end * sr) seg_audio y[start_sample:end_sample] segments.append((t_start, t_end)) # 保存单个击球片段 out_name faaa/{out_prefix}_{i:02d}.wav os.makedirs(os.path.dirname(out_name), exist_okTrue) sf.write(out_name, seg_audio, sr) print(f保存片段{i}: {t_start:.3f} ~ {t_end:.3f} - {out_name}) return segments if __name__ __main__: segs extract_hit_audio_segments(rE:\data\yumao\yu_0922.mp4)
企业数字化 ERP 产品动态
相关推荐
C++ 仿 muduo 高并发服务器:用户态缓冲区 Buffer 模块实现 C 仿 muduo 高并发服务器:用户态缓冲区 Buffer 模块实现1. 为什么需要 Buffer?
在非阻塞 I/O 的网络编程中,read 和 write 不保证一次就能读完或写完所有数据:
读半包:一次 read 可能只收到请求的一部分,需… · 2026/9/24 17:43:06
数组技术笔记 一、数组是什么
数组属于引用类型,是用来批量保存一组相同类型数据的数据结构。核心特点:数组长度一旦确定,就不可以更改。二、数组两种定义方式
方式 1:先指定长度,后面再赋值
// 格式:数据类型[] 数组名 … · 2026/9/24 17:43:06
为什么选择GEO全托管?当然是降低试错成本 很多企业认可GEO价值,但缺少懂AI大模型采信规则的团队,自行试错容易踩入AI投毒、虚夸宣传的合规陷阱,内容产出后收录、引用效果不稳定。径量GEO提供从诊断到复盘的全链路托管,坚持白帽真实合规原则,降低企业入局GEO的人… · 2026/9/24 17:42:53
智能问答系统文件存储选型与MinIO集成实战指南 最近在做一个智能问答系统,文档上传和文件存储这条链路折腾了我好几周。最开始图省事,所有PDF、Word、图片直接落在本机磁盘,配个Nginx别名路径就完事。结果一上线问题全来了:预览打不开、文件下载到一半断线、多台机器部署后文件… · 2026/9/24 18:46:29
CentOS 7上用Docker部署Redis与PostgreSQL完整指南 最近在测试环境要搭一套缓存加关系型数据库的组合,顺手把整个流程从零到一完整走了一遍。今天就以 CentOS 7 为底,把 Docker 装好,再用 Docker 把 Redis 和 PostgreSQL 跑起来。整个过程其实就是一条命令链,但中间值得注意的坑不少… · 2026/9/24 18:46:29
docker compose down 深度解析:容器清理、数据卷保留与实战排障 用过 Docker Compose 的人都见过这个画面:服务跑完,一条docker compose down敲下去,终端刷刷刷输出一堆容器名和网络名被移除,看起来干干净净,然后你顺手docker ps -a一看,发现一堆Exited状态的容器还在列表… · 2026/9/24 18:46:23
Debian控制结构实战:用if/for/while/case打造高效运维脚本 聊 Debian 的 control structures(控制结构),很多人第一反应是语法:if 后面要加 then,for 循环里变量怎么取值,case 的右括号要不要双写。可我在 Debian 上写脚本写了这么多年,发现真正的门槛从… · 2026/9/24 18:46:22
ROS场景下IaC选型:托管Terraform服务与原生Terraform深度对比 1. 从一次选型纠结说起:ROS 场景下的 IaC 到底该怎么选 如果你既写过机器人操作系统(ROS)相关的部署脚本,又碰过云上基础设施,那你大概率在某个时刻被同一个问题卡住过: ROS 那一堆节点、仿真环境、数据回… · 2026/9/24 18:46:09
SpringBoot集成Redis实现图书分页缓存:ZSet实战指南 做图书购买系统的时候,"图书列表分页"和"Redis缓存"几乎是绕不开的两个词。我这次在SpringBoot项目里把图书数据塞进Redis,并且让前端以分页的形式展示出来,踩了不少坑——从Redis安装配置、key序列化乱码,到… · 2026/9/24 18:46:03
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44