为什么 pulseaudio 中的 null-sink 和实际设备之间的延迟存在差异?
Why is there a difference in latency between null-sink and actual devices in pulseaudio?
我正在尝试使用 pulseaudio 和 amazon connect 创建一个 phone 自动回复软件。
所以我在 pulseaudio 中使用两个 null-sinks 将声音传递给语音识别和语音合成。
但是,我确实注意到似乎来自 PULSEAUDIO 的延迟。
我准备了以下简单的脚本,并与实际设备进行了比较。
这个程序是 运行 在 python3.6 和 centOS7.
#!/usr/bin/env python3
import time
import subprocess
t1=time.time()
subprocess.run(["pacat","--device=0","/usr/share/sounds/alsa/Noise.wav"])
print(time.time()-t1)
t1=time.time()
subprocess.run(["pacat","--device=1","/usr/share/sounds/alsa/Noise.wav"])
print(time.time()-t1)
现在这个程序的输出如下。
0.7789342403411865
2.532053232192993
为什么延迟会有这么大的差异?还有,有什么办法可以减少null-sink的延迟吗?
另外,由于我们打算在eks上的fargate上使用,所以很难改变NICE的值,也很难实时调度。
创建了一个空接收器,默认延迟约为两秒。
所以延迟是 2 秒,除非我创建的流需要它。
我正在尝试使用 pulseaudio 和 amazon connect 创建一个 phone 自动回复软件。
所以我在 pulseaudio 中使用两个 null-sinks 将声音传递给语音识别和语音合成。 但是,我确实注意到似乎来自 PULSEAUDIO 的延迟。
我准备了以下简单的脚本,并与实际设备进行了比较。
这个程序是 运行 在 python3.6 和 centOS7.
#!/usr/bin/env python3
import time
import subprocess
t1=time.time()
subprocess.run(["pacat","--device=0","/usr/share/sounds/alsa/Noise.wav"])
print(time.time()-t1)
t1=time.time()
subprocess.run(["pacat","--device=1","/usr/share/sounds/alsa/Noise.wav"])
print(time.time()-t1)
现在这个程序的输出如下。
0.7789342403411865
2.532053232192993
为什么延迟会有这么大的差异?还有,有什么办法可以减少null-sink的延迟吗?
另外,由于我们打算在eks上的fargate上使用,所以很难改变NICE的值,也很难实时调度。
创建了一个空接收器,默认延迟约为两秒。 所以延迟是 2 秒,除非我创建的流需要它。