Вывод звука начинается с задержкой

Через SPDIF слышимый звук начинается поздно, например, в диалоговом окне "Тестовый звук" я максимально слышу "левый", когда голос должен сказать "передний левый".

Когда у меня есть pavucontrol откройте (в фоновом режиме), одновременно нажимая на тестовый звук, он начинается немедленно.

Как правило, начиная любой аудио / медиа файл, начало не выводится / не слышно. Подключение либо оптическое, либо коаксиальное. Кажется, это влияет только на Ubuntu 12.10, не было в 12.04, похоже, не в 13.04!

От ubuntuusers.de немного помощи - играть в неслышимый синус, чтобы поддержать spdif:

apt-get install sox
play -n -c2 synth sin gain -100   # -c2 for two channels

Аппаратное обеспечение на ASRock 970 Extreme3 ​​(и GeForce 210):

$ cat /proc/asound/cards
 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfe200000 irq 16
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe080000 irq 25

$ cat /proc/asound/card0/codec* | grep Codec
Codec: Realtek ALC892

Немного pulseaudio -v вывод вставлен в http://paste.ubuntu.com/5629082/

Можно ли как-то обновить с pulseaudio 2.1?

Живой вывод Ubuntu 13.04, вставленный в http://paste.ubuntu.com/5630475/ - фактически здесь только самый первый вызов звука (или после некоторой длительной пользовательской паузы?) Начинается с задержкой, то есть после "... Left", "Передний правый" слышен, тогда как в 12.10 он всегда "... левый", " ... правый".

8 ответов

Решение

Я знаю, что собираюсь восстановить старый поток, но я нашел простое рабочее решение, которое решает проблему.

От: https://wiki.archlinux.org/index.php/PulseAudio

Чтобы отключить загрузку модуля module-suspend-on-idle, закомментируйте следующую строку в используемом файле конфигурации (~/.config/pulse/default.pa или /etc/pulse/default.pa):

### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle

Наконец, перезапустите PulseAudio, чтобы применить изменения.

  1. Найдите файлы конфигурации PulseAudio, которые содержат load-module module-suspend-on-idle линии:

    neatsoft@desktop:~$ grep module-suspend-on-idle /etc/pulse/*
    /etc/pulse/default.pa:load-module module-suspend-on-idle
    /etc/pulse/system.pa:load-module module-suspend-on-idle
    
  2. Закомментируйте эти строки.

  3. Перезапустите PulseAudio, чтобы применить изменения:

    pulseaudio -k

Только что протестирован на Ubuntu 17.04 и работает нормально.

Похоже, что управление питанием не позволяет звуковой карте выводить первый фрагмент аудио. Из http://wiki.gentoo.org/wiki/Power_management/Soundcard важные биты таковы:

Настройка времени выполнения

Вы можете настроить драйвер в файловой системе sysfs в / sys / module / snd_hda_intel / parameters

Регулятор power_save_controller управляет включением режима энергосбережения. Это предустановлено опцией ядра... энергосбережение....

Ручка power_save устанавливает время ожидания в секундах. Это задано параметром ядра Время ожидания по умолчанию...

вечера-Utils

pm-utils содержит скрипт для включения режима энергосбережения при работе от батареи и отключения при работе от сети переменного тока. Переопределяет значения ядра по умолчанию.

Если вы используете pm-utils, но не хотите такого рода регулирования, отключите скрипт: root # touch /etc/pm/power.d/intel-audio-powersave

Из вышеприведенного текста можно попробовать следующее:

  1. в терминале запустите следующее и попробуйте воспроизвести аудио снова:

    echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller
    

    Если звук в порядке, вам нужно сделать его постоянным, добавив новый файл в /etc/modprobe.d/ со следующим содержимым:

    options snd_hda_intel power-saving=N
    
  2. бежать sudo touch /etc/pm/power.d/intel-audio-powersave и перезагрузка

    если исправление сработало, то звук должен воспроизводиться нормально, если нет, то удалите файл снова:

    sudo rm /etc/pm/power.d/intel-audio-powersave
    

Если ни одна из этих работ, то у меня нет идей:-).

Принятый ответ о не загрузкеmodule-suspend-on-idle не решает проблему для меня. Чтобы "исправить" это, мне пришлось оставить команду непрерывного молчания в фоновом режиме, см. ОБНОВЛЕНИЕ 2 следующего вопроса:

И я воспроизвел эту проблему как во внутренних динамиках ноутбука, так и на ПК через HDMI и наушники, нет необходимости в SPDIF, на последних ArchLinux и Ubuntu.

Мне нужно запустить специальный «неразборчивый» звуковой файл (у меня тишина не работает) в Ubuntu 18.04 и Xubuntu 20.04 — но то же самое в Debian 6!

Что сработало для меня: как исправить первое воспроизведение звука с задержкой, пропущенным или приглушенным

Это общая проблема с SPDIF/ цифровым выходом и приемником, обрабатывающим сигнал и т. Д. Если сигнал отсутствует, приемник переходит в режим ожидания. Для начала воспроизведения сигнала требуется от нескольких до нескольких сотен миллисекунд. ЕДИНСТВЕННЫЙ способ исправить это - заставить ваш выход SPDIF постоянно посылать НЕКОТОРЫЙ сигнал, таким образом поддерживая обработку приемника постоянно. На данный момент я только что решил эту проблему в Windows, используя крошечную утилиту, написанную каким-то парнем в.NET, которая постоянно выдает нулевой сигнал. Он называет это SPDIF Keep-Alive. Это поддерживает прохождение сигнала, и мой приемник постоянно слушает. Я еще не видел способ сделать это для Linux, но я бы предположил, что поддержка для создания такой вещи ВЕЗДЕ. Надеюсь, это дало кому-то представление о том, что искать или где искать дальше! -K9SPY

Поддержание активности цифрового звука в действии SPDIF Keep-Alive в действии TOSLINK keep-alive для поддержки времени ожидания переходит в режим сна и выключает задержку звука SPDIF

Для меня это сработало:

  • В /etc/pulse/daemon.conf:
    • установлен default-sample-rateк
    • установлен alternate-sample-rateк 48000

Источник: эта проблема Gitlab:

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

Удаление не исправил звук HDMI для меня, и вместо другого предложения воспроизводить беззвучный аудиофайл в цикле я придумал немного более приятный способ поддерживать соединение, подключив нулевой источник к звуковому выходу. Я сделал это, сначала загрузив нулевые исходные и петлевые модули, используя следующие команды:

      pactl load-module module-null-source
pactl load-module module-loopback

Обычно этого должно быть достаточно, поскольку по умолчанию петля подключает нулевой источник к выходному звуку по умолчанию. Однако, если вы использовали эти модули ранее и подключили их каким-либо другим способом, то эти подключения будут запомнены и применены повторно. В этом случае их можно правильно подключить интерактивным способом в :

  1. На вкладке «Запись» соедините вход петлевого устройства с нулевым входом.
  2. На вкладке «Воспроизведение» подключите выход петлевого устройства к выходу HDMI.

(Если петлевое устройство отсутствует в списке устройств, сначала необходимо выбрать «Показать: все потоки» внизу.)

Должна быть возможность выполнить и вторую часть с параметрами командной строки, но, поскольку pulseaudio все равно запоминает подключения модулей, мне никогда не приходилось снова подключать устройства с момента моего первоначального эксперимента. После того, как устройства были правильно подключены один раз, в дальнейшем достаточно загрузить два модуля либо с помощью команд сверху, либо путем добавления

      load-module module-null-source
load-module module-loopback

в конфигурационный файл ( или же ).

Другие вопросы по тегам