将 WAV 转换为 TETRA 格式



我正在尝试将wav文件转换为TETRA编码文件(https://en.wikipedia.org/wiki/Terrestrial_Trunked_Radio(。Tetra 被消防员使用,它提供类似无线电的声音。

我正在尝试使用(https://www.etsi.org/deliver/etsi_en/300300_300399/30039502/01.03.01_60/(中提供的官方tetra编解码器代码,我们可以使用 https://github.com/sq5bpf/install-tetra-codec 上提供的脚本轻松编译它。

但是,我无法弄清楚如何使用这些文件将 wav 文件转换为 tetra 编解码器文件。我尝试浏览编译文件的文档(ccoder,cdecoder,scoder,sdecoder(。

我尝试了以下命令 -

四/料瓶/挖板/施密德输入.wav serial_file synth_file

这里serial_file和synth_file是输出文件,并在 scoder.c 文件中具有以下文档:

INPUT   :   - Description : speech file to be analyzed
- Format : binary file 16 bit-samples
240 samples per frame
serial_file :   - Description : serial stream output file 
- Format : binary file 16 bit-samples
each 16 bit-sample represents one encoded bit
138 (= 1 + 137) bits per frame
synth_file  :   - Description : local synthesis output file 
- Format : binary file 16 bit-samples

对于大小为 13M 的输入文件,我获得了大小为 8.0M 和 16M 的serial_file和synth_file。但是,我认为由于wav文件正在转换为对讲机类型的信号,因此输出文件大小会小得多。

我想澄清一下,如果:

  • 我使用正确的代码将输入 wav 文件转换为四格式输出文件。
  • 你能帮我理解,什么是serial_file和synth_file。

谢谢 阿希什

synth_file

是内部计算参数,您可以忽略它。

serial_file实际编码的数据,则可以在 sdecoder 中使用它。

传统上,ETSI代码使用非常低效的输出格式,而不是位,它们输出这些位的文本或扩展表示。 即,他们写一个 16 位的字,而不是位,其中所有位都是 0,最后一个有信息。他们这样做是为了与我认为他们的传输损坏测试工具接口。

所以串行文件的实际长度应该小 16 倍,所以你把 13Mb 转换为 0.5Mb 就可以了。

最新更新