我的红外传感器有TRS connector,我可以将遥控器信号录制成音频。 现在我想用电视遥控器控制我的电脑,但我不知道如何将音频输入与预先录制的音频进行比较。但在我意识到这些音频波只包含某种数据(二进制)后,我可以将它们变成二进制或十六进制,因此比较容易得多。
波浪看起来像这样:
这个:
这些是“OK”按钮的记录,有时在右声道上也有一些冲动,我不知道为什么,似乎传感器中的连接可能会损坏。 好吧那无所谓,无论如何
我需要帮助python程序读取这些脉冲并将它们变为二进制,实时从音频输入(麦克风)。 我知道它听起来像“为我而做,虽然我喜欢我的生活”,但我没有声音转换/阅读的经验......我一直在寻找用于录制和阅读音频的python示例,但没有成功。 / p>
答案 0 :(得分:4)
如果您可以放弃实时要求,这很容易:只需将数据保存为.wav文件,然后使用Python的wave module读取它。
以下是如何在Python中读取wav文件的示例
import wave
w = wave.open("myfile.wav", "rb")
binary_data = w.readframes(w.getnframes())
w.close()
可以实时做到这一点,但它更难,但仍然不是很难。对于实时,我使用PyAudio,一个良好的开端是遵循演示中的示例。在这些中你基本上打开一个流并一次读取小块,如果你想要任何交互性,你需要在一个线程中这样做。
(另外,请注意,声卡将过滤您的音频输入,因此您所看到的不会是真正的输入信号。特别是,我认为遥控器通常具有大约40KHz的载波频率,这是高于人类听力,所以我怀疑声卡在这个范围内工作得很好,尽管它们可能足以取决于你想做什么。)