
最初,此家庭项目的目标是从Raspberry Pi创建Internet无线电接收器。 我想找到或恢复一些旧的木制接收器,或者至少要放一个箱子,在上面放一个覆盆子,一个电池,二十一点,然后给它提供无线网络。 由于没有时间,所有这些都安全地放入了一个长抽屉,但是也许随着时间的推移我会意识到这一点。 但是我想谈谈项目的程序部分。
在我看来,制造一台旧收音机使之听起来像水晶般清晰的现代比特率并不难。 就是说,让它们也发出声音,但是当您还没有脉冲转换器,而独角兽在大街上走来走去的时候,我从旧收音机中听到的真实声音使我倍感愉悦。 我想象如何老化声音的秘诀:
- 1 ... 10μV有用信号,
- 0.3μV回波,在相同的频率下以相同的频率传输,但来自不同的位置,
- 另一个电台以相同频率广播的0.2μV信号
- 不再需要一滴干扰声,因为令人讨厌,
- 0.1μV输入噪声
- 秘密因素是衰落,即除输入电路的噪声外,所有列出的信号都将衰落,它们将与AGC一起工作-自动增益调节,因此背景信号之一会定期出现在实际无线电中,
- 好吧,品尝一下,削减高频。
可以理解,无线电以中波,傍晚时间工作,并且信号传播很远。 该列表可以无限期继续,但是树莓派的资源有限,但是我想启动很多线程并在它们之间切换。 因此,我只限于上述内容。 他以基于Icecast和许多其他有用工具的服务器形式设计了所有这些工具。 该服务器可帮助我在新年假期中营造出节日气氛。 也许对其他人有用。
服务器的原理是:使用ffmpeg将来自Internet的两个输入音频流转换为wav,此处降低了采样频率以消除高频,并简化了处理器的工作。
然后,这些流经过用C编写的即兴声音处理器。 我要求系统编程专家不要为可能出现的错误而踢我,在我平常的生活中,我是一名Web开发人员,而对我而言,C就像是bash的快速版本。 在此,为每个信号分配一个考虑了衰落的电平值,然后考虑这些电平对信号求和,然后将总信号除以总电平值,从而对AGC进行仿真,并且接收到的声音的音量将大致保持恒定。
输出流由oggenc编码,并使用ezstream传输到Icecast服务器,在此该服务器可用于侦听。
您可以从这里克隆项目,也有安装说明。 最好不要先在Raspberry上安装它,而要在普通的台式机Linux上安装它,因为您可能需要手工组装一些组件来修改树莓派。 代替脚本stream-template-1206am,有一个脚本包含了我最喜欢的广播电台,以防止它们受到可能的危害,并防止良心con悔,取而代之的是插头。 相反,请根据自己的喜好放置音频流,并让温暖的电子管声随身携带。
祝大家节日快乐!
更新:根据用户的建议, Logonoff添加了一个示例 ,说明如何在项目中听起来。