python – 如何解调(音频)莫尔斯电码
发布时间:2020-12-20 13:28:21 所属栏目:Python 来源:网络整理
导读:我有一个无线电接收器.收音机的声音输出到我的电脑.声音输出包含大约440 Hz的摩尔斯电码.莫尔斯电码的速度范围从2到20 WPM.我知道如何判断其他电台是否正在发送,但我如何处理发送/不发送状态并将其转换为文本?我认为可能有比蛮力更好的解决方案. 复杂因素:
我有一个无线电接收器.收音机的声音输出到我的电脑.声音输出包含大约440 Hz的摩尔斯电码.莫尔斯电码的速度范围从2到20
WPM.我知道如何判断其他电台是否正在发送,但我如何处理发送/不发送状态并将其转换为文本?我认为可能有比蛮力更好的解决方案.
复杂因素: >我希望程序能够确定其他工作站的传输速度,而不是像大多数莫尔斯电码程序那样由用户指定. >例如,单词之间的暂停应该由7个元素组成,但它可以是5到8之间的任何内容. >我想在或多或少的实时做到这一点.如果程序输出一些东西,意识到它是一个错误,并纠正它就没问题. Source code 到目前为止的程序输出示例.它可以将音频解析为键控/非键控,但将其解析为点/短划线不起作用. ###########################################################__________________________ _________________________________#################################################### ##################################################################################### #######################################______________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _________________________ 关于确定发送/不发送的事物的任何代码/建议和/或解决该莫尔斯代码的部分将不胜感激. 解决方法
关于将虚线和空格中的点分开,一个想法是在对话开始时开始收集统计数据并将所有“键入的XXms”事件放入一个数组(或某物)中,并将所有“未键入的YY ms”放入另一个数组中(或者其他的东西).然后你最终会得到键控的直方图概率(t)和非键控的直方图概率(t).这些直方图应该有一些最大值和最小值,对人类和某些算法都是可见的.所以,你做一些曲线的舍入将它们分成最小值,将左边的点从破折号分开到右边,同样可能有多个带空格的最小值.这种方法非常适合对话,但不需要调整.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |