【问题标题】:What latency is required to make software fax using only speaker and mic?仅使用扬声器和麦克风进行软件传真需要什么延迟?
【发布时间】:2012-06-15 08:04:46
【问题描述】:

故事

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

问题

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

问题

如果上述情况属实 - 传真协议所需的延迟是多少?
有没有测量麦克风延迟的工具?
我还错过了什么?
是否可以在 Python 中实现所有内容?

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

【问题讨论】:

  • 这个问题太棒了。老实说,我希望每一个问题都有这么多的背景和想法。我喜欢你附上一张照片的事实,这是我读过的最好的问题之一。
  • 您所描述的或多或少是调制解调器卡自一两年以来一直在做的事情。它们实际上是软调制解调器,在软件中进行编码,并且只需要简单的硬件即可将信号调制到电线上,而无需使用声耦合器;)
  • 问题可能不是计算问题,请参阅可恶的 WinModem,它在 CPU 时将调制解调器信号生成从后面移交给 CPU。一旦您说“用于传真的扬声器和麦克风”,您就遇到了以 14kbit/s 运行的调制解调器的声耦合物理问题。我从没见过有人尝试过这个障碍。
  • 为什么不写一个程序来为你过滤传真噪音呢?
  • 一台低端传真机或传真调制解调器将比您尝试通过麦克风和扬声器。 (eBay 目前“传真调制解调器”的最高结果是一个 USB 装置,包括运费在内,售价 12 美元!)

标签: python protocols signal-processing fax


【解决方案1】:

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

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

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

【讨论】:

  • 不错的链接。它们对于为手动测试制作蜂鸣器很有用,但它们仍然没有解释为什么没有纯麦克风+扬声器的解决方案。我的意思是,解释 V.21 协议描述中的时间延迟将足以回答这个问题。
  • @techtonik 查看 GNU 无线电邮件列表中线程的最后一篇文章,他们或多或少地将电话线直接连接到声卡。我想你也可以通过声学耦合来达到同样的效果,尽管会有更多的损失和噪音
  • 我怀疑没有扬声器/麦克风设置的至少部分原因是麦克风无法区分自己的信号正在传输和接收的信号。也就是说,它只工作半双工。除非扬声器和麦克风彼此充分隔离,否则您不能同时播放声音和录制不同声音。
【解决方案2】:

为什么要重新发明。

代码可在http://www.hylafax.org/archive/2005-12/msg00120.php获取

【讨论】:

  • “任何支持传真操作标准接口之一的调制解调器都可以使用”。问题是我没有调制解调器。
猜你喜欢
  • 2011-11-21
  • 1970-01-01
  • 2021-06-10
  • 2014-08-11
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多