撸了一个 DTMF(电话拨号按键信号)解码、编码,纯 js 代码简单易于移植

xiangyuecn 13天前 13

还是直接上图吧:

在线测试地址: https://xiangyuecn.github.io/Recorder/assets/%E5%B7%A5%E5%85%B7-%E4%BB%A3%E7%A0%81%E8%BF%90%E8%A1%8C%E5%92%8C%E9%9D%99%E6%80%81%E5%88%86%E5%8F%91Runtime.html?jsname=teach.dtmf.decode_and_encode

详细文章: https://www.cnblogs.com/xiangyuecn/p/13200894.html (半年没发文,博客园要审核了?)


相关代码都是简单的纯 js 代码,移植到别的语言非常方便,涉及到三个源码,个个小巧:

  1. FFT:lib.fft.js 111 行(代码+空行+注释)
  2. DTMF 解码:dtmf.decode.js 192 行(代码+空行+注释)
  3. DTMF 编码:dtmf.encode.js 191 行(代码+空行+注释)

自评:高性能

最新回复 (14)
  • itskingname 10天前
    引用 2
    亲测,你直接对着电话放对应的按键声音,不按键,也能打通电话。
  • nutting 10天前
    引用 3
    想起来了,还有什么脉冲拨号。但是这些现在在手机上没法搞了吧,手机没有拿起听筒这一说?
  • murmur 10天前
    引用 4
    现在似乎都是数字交换了,还有模拟电话机么
  • 7gugu 10天前
    引用 5
    帅啊
  • 楼主 xiangyuecn 10天前
    引用 6
    @itskingname #1 4G 信号下拨通 10086,用电脑按个 123 什么的生成信号音,对准手机麦克风,10086 对信号识别没有问题,正确进入菜单
  • 楼主 xiangyuecn 10天前
    引用 7
    @murmur #3 DTMF 是数字信号吧
  • systemcall 10天前
    引用 8
    现在的手机都是 VoLTE 了,座机现在很少用了,应该不能这样拨号了吧
  • 楼主 xiangyuecn 10天前
    引用 9
    @systemcall 拨号不知道,不过选个 1 2 3 什么的菜单 或 输个密码,还是可以的,主要用在软电话中识别对方发来的按键信号
  • chinvo 10天前
    引用 10
    @xiangyuecn #6 drmf 是模拟信号,是靠波形变化传输数据的
  • 楼主 xiangyuecn 10天前
    引用 11
    @chinvo #9 好像是这么回事,具体的我就不懂了
  • w292614191 10天前
    引用 12
    我要背景图,老哥。
  • locoz 10天前
    引用 13
  • realpg 10天前
    引用 14
    @systemcall #7
    国内运营商的 DTMF 全部是 inband 方式
  • baobao1270 10天前
    引用 15
    我看到油管上有个人,18 年测试用 DTMF 音拨打中国电信客服,是用电脑播放、手机麦克风收听的,是可以的
  • 游客
    16
返回