1
1
我找到了编码数据如此不同的原因。事实上,正如Paulo Scardine所说,这是一种有损压缩,而且speex只适用于160帧,因此,当从portaudio向speex获取数据时,它需要160帧的“包”。 |
2
1
实际上,语音会给音频数据带来额外的延迟,我通过逆向工程发现:
因为lookahead是用zereos初始化的,所以您观察到前几个样本是“接近于零”。 要获得正确的计时,必须先跳过这些示例,然后才能将实际的音频数据馈送到编解码器中。为什么,我不知道。可能speex的作者从来都不关心这个问题,因为speex主要用于流媒体,而不是存储和还原音频数据。 另一个解决方法(不浪费空间)是,在输入实际的音频数据之前,将(帧大小延迟)零输入编解码器,然后删除整个第一个speex帧。 我希望这能澄清一切。如果熟悉Speex的人读到了这个,如果我错了,请随时纠正我。 编辑:实际上,解码器和编码器都有一个前瞻时间。延迟的实际公式为:
|
3
0
您可能需要在这里查看一些简单的编码/解码: http://www.speex.org/docs/manual/speex-manual/node13.html#SECTION001310000000000000000 由于您使用的是UDP,您还可以使用抖动缓冲区来重新排序数据包和其他东西。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |