首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

python3解析wav文件获取dtmf值

编程知识
2024年08月03日 10:39

操作系统 :Windows 10_x64

Python版本:3.9.2

从事FreeSwitch相关工作,大概率会遇得到DTMF,DTMF的传递方式有三种:
  • In-band
  • RFC2833
  • SIP-INFO

使用RFC2833或SIP-INFO传递方式的DTMF,FreeSwitch可以在日志中打印出来,但遇到inband模式的DTMF,FreeSwitch的日志就打印不出来了。

如果是会议场景,使用In-band模式(比如固话)发送DTMF,DTMF按键的声音和音频流混合在一起发送到对端:

1)在传输过程转换为2833格式dtmf后,会添加2833格式的DTMF按键信息,混合在音频流里面的DTMF按键未移除;

2)会出现在会议系统中可以听到座机传来的DTMF按键音。

这个问题目前没有比较好的解决办法,这里记录一下。但这个问题引发了我的思考:

In-band模式的DTMF能识别吗?如果可以识别,怎么识别?

今天整理下In-band模式DTMF识别的笔记。我将从以下几个方面进行展开:

  • DTMF介绍

  • 如何生成包含DTMF按键音的wav文件

  • 如何使用python脚本解析wav文件获取DTMF按键值

  • 运行效果截图及配套资源下载

一、DTMF介绍

DTMF信号即双音多频信号,网上介绍的资料比较多,这里主要关注的是频率信息,可以参考下pypi上关于DTMF的介绍:
https://pypi.org/project/dtmf/

二、生成包含DTMF按键音的wav文件

1、使用Audacity生成wav文件

Audacity版本:3.1.3这里使用Audacity进行噪音文件的生成,如果不了解Audacity软件,可参考这篇文章:

https://www.cnblogs.com/MikeZhang/p/audacity2022022.html

1)选择"生成->DTMF音..."

2)生成0123456789音频

3)导出音频

这里使用8000hz导出音频。

如果想直接使用导出的音频文件(dtmf-au.wav),可从如下渠道获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20240803 获取。

2、使用软电话模拟inband模式生成wav文件

1)配置软电话,使用inband模式

 2)用会议室模拟通话过程的DTMF按键

conference test bgdial user/1001
conference test bgdial user/1002

1001按键,在会议室的1002可以听见按键音(按键值:123456789*0#)。

3)执行会议室录音

命令如下:

conference test recording start /tmp/dtmf-fs.wav

这里描述下大概流程,如果想直接使用导出的音频文件(dtmf-fs.wav),可从如下渠道获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20240803 获取。

三、python解析wav文件获取DTMF按键值

在GitHub上找到一个解析dtmf的库:

https://github.com/ribt/dtmf-decoder

 如果无法打开,可从文末提供的渠道获取下载的源码压缩包。

其核心是 dtmf.py 文件,运行效果如下:

 也可直接使用我修改过的代码(dtmf2.py):

完整代码可从如下渠道获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20240803 获取。

运行效果如下:

四、资源下载

本文涉及源码及相关文件,可从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20240803 获取。

 好,就这么多了,别忘了点赞哈! 

From:https://www.cnblogs.com/MikeZhang/p/18340275/pyDecodeDtmf20240803
本文地址: http://www.shuzixingkong.net/article/738
0评论
提交 加载更多评论
其他文章 技术资产建设
企业里的研发部门、技术团队其实更多的是软件/互联网公司的生产部门,好比实体产业的生产车间。生产车间可以通过更新车床、设备来提高生产力,这里的车床、设备即是“资产”,那么研发部门的“资产”类比一下就出来了,就是部门级的技术标准、工具。 对于团队人效来说,统一的技术库、技术组件能够形成有效的技术隔离带,
技术资产建设 技术资产建设 技术资产建设
Python的GDAL库绘制多波段、长时序遥感影像时间曲线图
本文介绍基于Python中的gdal模块,对大量长时间序列的栅格遥感影像文件,绘制其每一个波段中、若干随机指定的像元的时间序列曲线图的方法~
Python的GDAL库绘制多波段、长时序遥感影像时间曲线图 Python的GDAL库绘制多波段、长时序遥感影像时间曲线图 Python的GDAL库绘制多波段、长时序遥感影像时间曲线图
TinyVue v3.17.0 正式发布,推出了一款基于 Quill 2.0 的富文本编辑器,功能强大、开箱即用!
你好,我是 Kagol。 我们非常高兴地宣布,2024年6月26日,TinyVue 发布了 v3.17.0 🎉。 TinyVue 每次大版本发布,都会给大家带来一些实用的新特性,上一个版本我们重构了 chart-core,新增 CircleProcessChart 圆环进度图等6个新
TinyVue v3.17.0 正式发布,推出了一款基于 Quill 2.0 的富文本编辑器,功能强大、开箱即用! TinyVue v3.17.0 正式发布,推出了一款基于 Quill 2.0 的富文本编辑器,功能强大、开箱即用! TinyVue v3.17.0 正式发布,推出了一款基于 Quill 2.0 的富文本编辑器,功能强大、开箱即用!
SmolLM: 一个超快速、超高性能的小模型集合
简介 本文将介绍 SmolLM。它集合了一系列最尖端的 135M、360M、1.7B 参数量的小模型,这些模型均在一个全新的高质量数据集上训练。本文将介绍数据整理、模型评测、使用方法等相关过程。 引言 近期,人们对能在本地设备上运行的小语言模型的兴趣日渐增长。这一趋势不仅激发了相关业者对蒸馏或量化等
SmolLM: 一个超快速、超高性能的小模型集合 SmolLM: 一个超快速、超高性能的小模型集合 SmolLM: 一个超快速、超高性能的小模型集合
P6764 [APIO2020] 粉刷墙壁
讲解 P6764 [APIO2020] 粉刷墙壁。 使用动态规划算法,通过题目的特殊性质入手,快速转移,然后是贪心的最小区间覆盖问题。
LogCat连接安卓手机拉取日志到本地(Unity开发版)
unity开发游戏的时候经常会碰到安卓手机真机报错/崩溃,定位问题需要拉取安卓手机上的日志到电脑上来查看。 1. unity安装的时候,勾选安卓模块(sdk这些记得勾选安装) 2. 打开对应安卓模块个目录下的adb目录, 当前我的安装目录为C:\Program Files\Unity\Hub\Edi
LogCat连接安卓手机拉取日志到本地(Unity开发版) LogCat连接安卓手机拉取日志到本地(Unity开发版) LogCat连接安卓手机拉取日志到本地(Unity开发版)
前端性能优化---防抖与节流--02
防抖(Debounce)和节流(Throttle)是两种常用的优化技术,主要用于控制高频率的事件触发,如滚动、输入、窗口调整大小等。本文将深入探讨防抖与节流的原理、实现方法及其应用场景。 简单场景就是:输入框防抖,滚动节流 1. 防抖(Debounce) 防抖是一种在事件频繁触发时,通过延迟执行来减
ComfyUI插件:ComfyUI layer style 节点(三)
前言: 学习ComfyUI是一场持久战,而ComfyUI layer style 是一组专为图片设计制作且集成了Photoshop功能的强大节点。该节点几乎将PhotoShop的全部功能迁移到ComfyUI,诸如提供仿照Adobe Photoshop的图层样式、提供调整颜色功能(亮度、饱和度、对比度
ComfyUI插件:ComfyUI layer style 节点(三) ComfyUI插件:ComfyUI layer style 节点(三) ComfyUI插件:ComfyUI layer style 节点(三)