我有一个无线电接收器。那台收音机的声音输出到我的电脑。声音输出包含 440 Hz 或大约 440 Hz 的摩尔斯电码。该莫尔斯电码的速度范围为 2 到 20 WPM。我有点知道如何判断对方是否在传输,但是我如何将传输/未传输状态转换为文本?我认为可能有比蛮力更好的解决方案。
复杂因素:
- 我希望程序能够计算出另一个站的传输速度,而不是像大多数摩尔斯电码程序那样由用户指定。
- 有噪音
- 莫尔斯电码发射器不会立即打开和关闭。上升和下降时间约为 4 毫秒。
- 这种莫尔斯电码大部分是由人发送的,因此并不完美:
- 例如,单词之间的停顿应该由 7 个元素组成,但它可以是 5 到 8 个之间的任何元素。
- 在一次对话中,一个人的发送速度可能会发生大约 20% 的变化
- 我想或多或少实时地做到这一点。如果程序输出一些东西,意识到这是一个错误并纠正它,那就没关系了。
到目前为止的程序示例输出。它可以将音频解析为键控/非键控,但将其解析为点/破折号不起作用。
###########################################################__________________________
_________________________________####################################################
#####################################################################################
#######################################______________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_________________________
任何关于确定传输/不传输和/或将其解析为莫尔斯电码的部分的代码/建议将不胜感激。