python - 仅使用扬声器和麦克风进行软件传真需要多长时间?

标签 python protocols signal-processing fax

故事

我没有任何传真硬件,所以我很难与接电话时有传真噪音的人交流。甚至很难想象,2012 年人们仍在使用吃树和吃纸的设备进行通信。因此,我想通过传真向他们宣布互联网、电子邮件和视频 session 的新时代终于到来了。

http://xkcd.com/454/

问题

由于我没有任何传真硬件,显然和最快的选择是通过在线服务发送消息。从另一方面看,传真硬件基本上是一个扬声器、一个麦克风和一些数字信号处理代码。唯一明显的问题是代码。传真协议(protocol)是已知的——即使在 Python 中实现它应该不是问题,但到目前为止我还没有看到任何使用扬声器+麦克风进行传真的示例。 CPU 性能是毋庸置疑的——现代 PC 有足够的能力计算 2400 位/秒的足够噪声。因此,对此我唯一的技术解释是延迟 -(噪声从麦克风传播到 DSP 代码并返回扬声器的时间)太长以至于它会中断传输。

问题

如果以上为真 - 传真协议(protocol)所需的延迟是多少?
是否有测量麦克风扬声器延迟的工具?
我还错过了什么?
是否有可能在 Python 中实现一切?

附言我在 looked into ITU 时找不到任何东西(除了我发现 ITU looks for you )

最佳答案

Fabrice Bellard(是的,QEMU 和 Javascript-PC-emulator 专家,他很棒 ;))在软件调制解调器方面做了一些工作。根据他的project page ,有“声卡接口(interface)”的代码以及各种协议(protocol)的调制/解调。我没有查看源代码,但这可能会提供有用的部分。还有 linmodems.org带有更多指示的网站。

Linmodems.org 链接到一些 software by the late Tony Fisher ,谁似乎已经完整地实现了你想要实现的发送部分,尽管对于一个古老的工作站。看看 manpage .

此外,还有this post on the GNU radio mailinglists从 2003 年开始,一个人似乎想要同样的东西,尽管他当时没有 xkcd 来描述它;)

关于python - 仅使用扬声器和麦克风进行软件传真需要多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10996682/

相关文章:

python - 如何读取/处理命令行参数?

python - 使用 gunicorn 运行时如何在运行时更改 flask 配置变量

documentation - 生成 Protobuf 文档?

protocols - 为什么反熵协议(protocol)中会出现 "entropy"这个词?

c# - 如何在C#中采样音频?

python - Twisted 有什么了不起的?

python - 我可以研究什么来加速这个 python 脚本化 mysql 查询?

delegates - 为什么使用委托(delegate)和协议(protocol)而不是仅仅在 Swift 中传递一个实例?

machine-learning - 语音识别实验在训练期间崩溃

c# - MIDI 或 WAV 文件到一组频率和持续时间