ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 如何解调(音频)莫尔斯电码

2019-07-09 16:55:23  阅读:231  来源: 互联网

标签:python morse-code


我有一个无线电接收器.收音机的声音输出到我的电脑.声音输出包含大约440 Hz的摩尔斯电码.莫尔斯电码的速度范围从2到20 WPM.我知道如何判断其他电台是否正在发送,但我如何处理发送/不发送状态并将其转换为文本?我认为可能有比蛮力更好的解决方案.

复杂因素:

>我希望程序能够确定其他工作站的传输速度,而不是像大多数莫尔斯电码程序那样由用户指定.
>有噪音
>摩尔斯电码发射器不会立即打开和关闭.上升和下降时间大约为4毫秒.
>大部分摩尔斯电码都是由人发送的,因此并不完美:

>例如,单词之间的暂停应该由7个元素组成,但它可以是5到8之间的任何内容.
>在一次谈话中,发送速度的人可能会有大约20%的变化

>我想在或多或少的实时做到这一点.如果程序输出一些东西,意识到它是一个错误,并纠正它就没问题.

Source code

到目前为止的程序输出示例.它可以将音频解析为键控/非键控,但将其解析为点/短划线不起作用.

###########################################################__________________________
_________________________________####################################################
#####################################################################################
#######################################______________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_________________________

关于确定发送/不发送的事物的任何代码/建议和/或解决该莫尔斯代码的部分将不胜感激.

解决方法:

关于将虚线和空格中的点分开,一个想法是在对话开始时开始收集统计数据并将所有“键入的XXms”事件放入一个数组(或某物)中,并将所有“未键入的YY ms”放入另一个数组中(或者其他的东西).然后你最终会得到键控的直方图概率(t)和非键控的直方图概率(t).这些直方图应该有一些最大值和最小值,对人类和某些算法都是可见的.所以,你做一些曲线的舍入将它们分成最小值,将左边的点从破折号分开到右边,同样可能有多个带空格的最小值.这种方法非常适合对话,但不需要调整.

标签:python,morse-code
来源: https://codeday.me/bug/20190709/1415132.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有