将麦克风中的音频实时输入到 python 中

将麦克风中的音频实时输入到 python 中

好吧,所以我正在读关于raspberry pi 教程让你从 raspberry pi 播放音频文件并将它们传输到 FM 信号中,这让我很好奇。您可以流式传输 .wav 文件,这没问题,但有一个命令可以使其从麦克风流式传输实时音频。

我很好奇它是如何运作的。这是命令:

arecord -d0 -c2 -f S16_LE -r 22050 -twav -D copy | sudo ./pifm -

嗯,我很好奇它是如何工作的。我搜索并了解 arecord 是一个从麦克风录制音频的程序。它有一个选项,您可以在其中写入文件名,它会将录制的文件保存给您。但在这个例子中,发生了一些事情:看起来音频直接进入 python,live。我的意思是,这怎么可能?程序 arecord 是否向 python 提供声音数据?

我只在这个命令中看到过这种语法,例如:

cat file.txt | grep 'test'

这是读取文件“file.txt”但仅输出其中写入“test”的行的一种方法。那么,一般来说,该符号|在 Linux 中意味着什么?当他在执行| sudo ./pifm某个程序后会发生什么?

我真的很喜欢 Linux 中的这种可能性,这是我以前从未见过的。我的假设正确吗?另外,python如何接收这些数据?有这个库吗?

答案1

管道符号|将其左侧进程的输出连接到其右侧进程的输入。它是 Unix/Linux 生态系统的基本组成部分,因为它允许您使用相对简单(且专业)的工具构建复杂的操作。

如果它给你一个参考点,这对于 Windows 系统来说也是类似的,无论是 Powershell 还是 DOS。

相关内容