Почему существует разница в задержке между нулевым приемником и реальными устройствами в pulseaudio?

Я пытаюсь создать программное обеспечение автоответчика для телефона, используя pulseaudio и amazon connect.

Поэтому я использую два нулевых приемника в pulseaudio для передачи звука в функции распознавания и синтеза речи. Тем не менее, я заметил затухание, похожее на 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

Почему такая разница в длительности? Кроме того, есть ли способ уменьшить задержку нулевого приемника?

Кроме того, так как мы планируем использовать его на фаргейте на экс, сложно изменить значение NICE или запланировать его в реальном времени.


person 多田信洋    schedule 01.06.2020    source источник
comment
device0 — это реальное alsa-устройство, а device1 — нулевой приемник, созданный по описанию load-modul module-null-sink, хотя я забыл его написать.   -  person 多田信洋    schedule 01.06.2020


Ответы (1)


Нулевой приемник создается с задержкой по умолчанию около двух секунд. Таким образом, задержка составляла 2 секунды, если этого не требовал созданный мной поток.

person 多田信洋    schedule 08.06.2020
comment
Можете ли вы рассказать, как вы создали нулевую раковину без 2-секундной задержки? - person Tom B; 09.11.2020
comment
Воспроизведение без задержки указано в приложении, которое воспроизводит звук; в случае pacat вы можете сделать это pacat --latency-msec=10 /usr/share/sounds/alsa/Noise.wav - person 多田信洋; 09.11.2020