如何将文件转换为模拟调制解调器声音?

如何将文件转换为模拟调制解调器声音?

有谁知道有什么软件可以将文件(任何文件,例如 doc、zip、pdf 等)转换为声音文件,以便像旧调制解调器噪音一样播放?然后可以在另一台机器上“播放”并解密回其原始格式。这个想法是转换为模拟声音,通过耳机插孔录制,然后在另一台机器上播放。

如果没有,有人知道/知道我该如何创建程序来做这样的事情吗?我可以用 C# 写得相当好,但真的不知道从哪里开始。

答案1

这实际上取决于你想让它变得多么技术化。如果你真的不关心实现合理的数据速率,你可以使用许多简单的调制方案,例如频移键控或其中之一脉冲调制算法中,PWM 和 PPM 可能是最简单的。需要注意的是,电话线的带宽非常有限,因此某些频率甚至无法通过。

合成音调应该不会太难。查看 .NET 音频 API,我对它们了解不多。接收端的检测将是最困难的部分,这取决于您选择的调制方案。脉冲调制将是最容易实现的,因为您可以简单地测量信号半周期内信号的平均绝对值,如果超过某个阈值,则将其称为脉冲。通过这种方式,您可以将模拟信号转换为数字信号,然后可以将其解码回您传输的数据的实际字节。

真正的调制解调器使用一些非常复杂的编码,这些编码基于对电信系统的详细了解以及同步技术和纠错。因此,认为您将获得接近 56kbps 的速度或您的系统听起来像真正的调制解调器可能是非常不现实的。

您的带宽只有大约 7000Hz,这意味着您无法传输任何高于 3500Hz 的频率,并且上升和下降时间相当长。实际上,如果您的系统运行良好并且连接非常无噪音,您可能能够获得大约 500bps 的速度。

答案2

您所要求的非常直接,但同时也有些尴尬——当您听到调制解调器的噪音时,它实际上不是数据本身,而是专门设计的协议中的数据。

一个很大的误解是调制解调器上的所有音频听起来都像初始声音 - 事实上,“数据”的实际声音是不同的,登录总是听起来相同的原因是因为它几乎总是发送几乎相同的信号/信息。

因此,如果你想将数据转换为声音,最简单的方法可能是选择一种(无损)更简单的格式,如 MIDI,或者在 Codeplex/类似网站上搜索midi 组件这将大大简化你的工作。

接下来,我不确定有多少个独特的音符,但我假设至少有 65025 个不同的可能的独特音符(通过音高等), - 仅作为原始示例,您可以将源文件作为原始数据文件打开,并将每个十六进制双精度映射到一个音符。

因此,基本上,您将通过为其提供正确的页眉/页脚来人为地创建一个声音文件,然后通过将文件的每个字节编码为不同的音符来填充它。此外,如果您愿意,您还可以使用校验和/结束和开始字符。

您将需要构建一个编码器和解码器,这不是很容易,但是,我认为这并非不可能,您应该能够产生音频声音!...我怀疑它听起来像调制解调器 - 但是 - 谁知道呢!

请注意 - 我不是音响工程师...如果我对 MIDI 的理解是错误的,请选择其他格式...根据想法来判断!

答案3

尝试混合W软件。我们 HAMS 已经在使用该软件通过无线电传输文件。它将数据转换为语音,并通过无线电以普通语音的形式传输。它是一种单工类型的通信协议,因此速率非常低。

相关内容