gpt4 book ai didi

python - 如何解调(音频)摩尔斯电码

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:43 25 4
gpt4 key购买 nike

我有一个 radio 。那台 radio 的声音输出到我的电脑。声音输出包含约 440 Hz 的摩尔斯电码。该莫尔斯电码的速度范围为 2 到 20 WPM .我有点知道如何确定另一个站是否正在传输,但我如何获取传输/未传输状态并将其转换为文本?我认为可能有比蛮力更好的解决方案。

复杂因素:

  • 我希望程序能够计算出其他电台的传输速度,而不是像大多数摩尔斯电码程序那样由用户指定。
  • 有噪音
  • 摩尔斯电码发射器不会立即打开和关闭。上升和下降时间大约为 4 毫秒。
  • 大部分莫尔斯电码都是由人发送的,因此并不完美:
    • 例如,单词之间的停顿应该有 7 个元素,但它可以是 5 到 8 之间的任何值。
    • 在一次对话中,一个人的发送速度可能会有大约 20% 的差异
  • 我想或多或少实时地做这件事。如果程序输出了一些东西,意识到它是一个错误并纠正它,那没关系。

Source code

到目前为止程序的示例输出。它可以将音频解析为键控/非键控,但无法将其解析为点/破折号。

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

任何关于确定传输/不传输和/或将其解析为莫尔斯码的部分的代码/建议将不胜感激。

最佳答案

关于将点与破折号和空格彼此分开,一个想法是在对话开始时开始收集统计信息,并将所有“XXms of keyed”事件和所有“YY ms of not keyed”放入一个数组(或其他)进入另一个数组(或其他)。然后你最终会得到一个键控的直方图概率(t)和非键控的直方图概率(t)。这些直方图应该有一些最大值和最小值,对人类和某些算法都是可见的。因此,您对曲线进行一些舍入,在这些最小值处将它们分开,以将左侧的点与右侧的破折号分开,同样可能不止一个带空格的最小值。这种方法确实可以很好地融入对话,但不需要调整。

关于python - 如何解调(音频)摩尔斯电码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com