有没有人知道任何软件会将文件(任何文件,例如doc,zip,pdf等)转换为声音文件,以便它像旧的调制解调器噪声一样播放?然后它可以在另一台机器上“播放”并解密回原始格式。想法是转换为模拟声音,通过耳机插孔录制,然后在另一台机器上播放。
如果没有,有没有人知道/有任何想法如何创建程序来做这样的事情?我可以在C#中编写相当好的代码但是不知道从哪里开始。
有没有人知道任何软件会将文件(任何文件,例如doc,zip,pdf等)转换为声音文件,以便它像旧的调制解调器噪声一样播放?然后它可以在另一台机器上“播放”并解密回原始格式。想法是转换为模拟声音,通过耳机插孔录制,然后在另一台机器上播放。
如果没有,有没有人知道/有任何想法如何创建程序来做这样的事情?我可以在C#中编写相当好的代码但是不知道从哪里开始。
Answers:
这实际上取决于您想要的技术。如果您真的不关心实现合理的数据速率,可以使用许多简单的调制方案,例如频移键控或其中一种脉冲调制算法,PWM和PPM可能是最简单的。您必须小心的是,电话线的带宽非常有限,因此某些频率甚至无法通过。
合成你的音调不应该太困难。查看.NET音频API,我对它们了解不多。接收端的检测将是最棘手的部分,具体取决于您选择的调制方案。脉冲调制将是最容易做到的,因为您可以在信号的半个周期内简单地测量信号的平均绝对值,如果超过某个阈值则称之为脉冲。通过这种方式,您可以将模拟信号转换为数字信号,然后可以将其解码回您传输的数据的实际字节。
真正的调制解调器使用一些相当复杂的编码,基于电信系统的详细知识,以及同步技术和纠错。因此,认为你将达到56kbps附近或者你的系统听起来像真实的东西可能是不切实际的。
您只有大约7000Hz的带宽,这意味着您无法传输高于3500Hz的任何频率,并且您的上升和下降时间相当长。实际上,如果你的系统运行良好并且你有一个非常无噪音的连接,你可能能够达到大约500bps的速度。
您要求的是非常直接的,同时又尴尬 - 当您听到调制解调器噪音时,它实际上不是数据本身,而是专门设计的协议中的数据。
一个很大的误解是,调制解调器上的所有音频听起来都像初始声音 - 实际上,“数据”的实际声音是不同的,因此登录总是听起来相同的原因是因为它几乎总是发送几乎相同的信号/信息。
因此,如果您想将数据转换为声音,最简单的方法可能是选择(无损)更简单的格式(如MIDI),或搜索Midplex 组件的 Codeplex /类似网站,这将大大简化您的工作。
接下来,我不确定有多少独特的音符,但我认为至少有65025种可能的独特音符(通过音高等), - 作为原始示例,您可以将源文件作为原始数据文件打开并且基本上将每个hex double映射到一个音符。
所以,基本上你会通过给它正确的页眉/页脚来人工创建声音文件,然后通过将文件的每个字节编码为不同的音符来简单地填充它。此外,如果您愿意,您可以拥有校验和/结束和开始角色。
您将需要构建一个不太容易的编码器和解码器,但是,我不认为这是不可能的,您应该能够产生音频声音!...我怀疑它听起来像调制解调器 - 但是 - 谁知道!
请注意 - 我不是音响工程师......如果我对MIDI有误,请选择其他格式......根据这个想法来判断!