从音频脉冲中获取二进制数据

Tim*_*imo 5 python audio fft

我有IR传感器,它有TRS连接器,我可以将我的遥控器信号录制成音频.现在我想用电视遥控器控制我的电脑,但我不知道如何将音频输入与预先录制的音频进行比较.但在我意识到这些音频波只包含某种数据(二进制)后,我可以将它们变成二进制或十六进制,因此比较容易得多.

波浪看起来像这样: 波1

还有这个: 波2

这些是"OK"按钮的记录,有时在右声道上也有一些冲动,我不知道为什么,似乎传感器中的连接可能会损坏.好吧,无论如何,这无关紧要

我需要帮助python程序读取这些脉冲并将这些转换为二进制,实时从音频输入(麦克风). 我知道这听起来像"为我而做,而我喜欢我的生活",但我没有声音转换/阅读的经验......我一直在寻找用于录制和阅读音频的python示例,但没有成功.

tom*_*m10 5

如果您可以放弃实时要求,这很容易:只需将数据保存为 .wav 文件,然后使用 Python 的wave 模块读取它。

这是如何在 Python 中读取 wav 文件的示例,

import wave

w = wave.open("myfile.wav", "rb")
binary_data = w.readframes(w.getnframes())
w.close()
Run Code Online (Sandbox Code Playgroud)

可以实时执行此操作,但它更难,尽管仍然不是非常困难。对于实时,我使用PyAudio,一个好的开始是遵循演示中的示例。在这些中,您基本上打开一个流并一次读取小块,如果您想要任何交互性,则需要在线程中执行此操作。

(另外,请注意,声卡会过滤你的音频输入,所以你看到的不会是真正的输入信号。特别是,我认为遥控器的载波频率通常在 40KHz 左右,这比人类高听力,所以我怀疑声卡在这个范围内是否能正常工作,尽管它们可能就足够了,这取决于您想要做什么。)