A saída do som começa atrasada

10

Através do SPDIF, o som audível começa tarde, por exemplo, na caixa de diálogo Test Sound, eu posso ouvir "Left" no máximo quando a voz deve dizer "Front Left".

Quando eu pavucontrolabro (em segundo plano) enquanto clico no som de teste, ele inicia imediatamente.

Geralmente, ao iniciar qualquer arquivo de áudio / mídia, o início não é emitido / audível. Conexão óptica ou coaxial. Isso parece afetar apenas o Ubuntu 12.10, não foi o caso no 12.04, não parece ser o caso no 13.04!

Do ubuntuusers.de um pouco de ajuda - reproduzindo um seio não audível para manter o spdif vivo:

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

Hardware em um ASRock 970 Extreme3 ​​(e 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

Alguma pulseaudio -vsaída colada em http://paste.ubuntu.com/5629082/

Posso atualizar do pulseaudio 2.1 de alguma forma?

A saída do Ubuntu 13.04 ao vivo colada em http://paste.ubuntu.com/5630475/ - na verdade, aqui apenas a primeira invocação do som (ou após uma longa pausa do usuário?) Começa atrasada, ou seja, depois de "... Left", "Front Right" é ouvido, enquanto em 12.10 é sempre "... Left", "... Right".

tipo
fonte
1
Você pode fornecer mais informações sobre a placa de som e sobre o que está conectada? Você pode tentar com jackd se esse também for o caso? porque pode estar relacionado ao Pulse Audio e não à placa de som.
ttoine
O Realtek ALC892 parece oferecer muitos hits no google para minerar através de: /
digite
instalar o driver do fabricante como em community.linuxmint.com/tutorial/view/1236 também não ajudou. uma linha diz: {.id = 0x10ec0892, .name = "ALC892", .patch = patch_alc662},
digite

Respostas:

26

Sei que estou prestes a reativar um thread antigo, mas encontrei uma solução de trabalho fácil que resolve o problema.

De: https://wiki.archlinux.org/index.php/PulseAudio

Para desativar o carregamento do módulo module-suspend-on-idle, comente a seguinte linha no arquivo de configuração em uso (~ / .config / pulse / default.pa ou /etc/pulse/default.pa):

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

Finalmente, reinicie o PulseAudio para aplicar as alterações.

Dr_Evil
fonte
Esta foi a resposta para mim também, mas tem uma desvantagem. Alguns programas de áudio usam o ALSA para passar diretamente um formato específico para um receptor de home theater para decodificação, em vez de usar a reamostragem às vezes desonesta do PA. Isso funciona facilmente devido a essa mesma função de suspensão.
Moilleadóir 12/03/19
3

Parece que o gerenciamento de energia está impedindo a placa de som de emitir o primeiro trecho de áudio. Em http://wiki.gentoo.org/wiki/Power_management/Soundcard , os bits importantes são os seguintes:

Ajuste de tempo de execução

Você pode ajustar o driver no sistema de arquivos sysfs em / sys / module / snd_hda_intel / parameters

O botão giratório power_save_controller controla, se o modo de economia de energia estiver ativado. É predefinido pela opção do kernel ... economia de energia ....

O botão power_save define o tempo limite em segundos. É predefinido pela opção do kernel Tempo limite padrão ...

pm-utils

O pm-utils contém um script para ativar o modo de economia de energia quando estiver na bateria e desativar quando estiver em AC. Ele substitui os valores padrão do kernel.

Se você usa pm-utils, mas não deseja esse tipo de regulamento, desative o script: root # touch /etc/pm/power.d/intel-audio-powersave

No texto acima, o que você deve tentar é:

  1. no terminal, execute o seguinte e tente reproduzir o áudio novamente:

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

    Se o áudio estiver bom, é necessário torná-lo permanente adicionando um novo arquivo em /etc/modprobe.d/ com o seguinte conteúdo:

    options snd_hda_intel power-saving=N
    
  2. executar sudo touch /etc/pm/power.d/intel-audio-powersavee reiniciar

    se a correção funcionou, o áudio deve ser reproduzido normalmente; caso contrário, remova o arquivo novamente:

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

Se nenhum desses funcionar, estou sem ideias :-).

Daniel Llewellyn
fonte
Resposta incrível, muito obrigado! Infelizmente ainda não há alterações.
digite
que tipo de "novo arquivo" devo criar no etc / modprobe.d /?
Bhikkhu Subhuti
1

Esse é um problema geral com SPDIF / saída digital e o receptor processando o sinal etc. Se não houver sinal, o receptor entrará no modo ocioso. Demora de algumas a algumas centenas de milissegundos para começar a tocar o sinal. A única maneira de corrigi-lo é fazer com que sua saída SPDIF envie constantemente ALGUM sinal, mantendo assim o processamento do receptor ativo o tempo todo. No momento, acabei de resolver esse problema no Windows usando um pequeno utilitário que um cara escreveu no .NET que emite um sinal nulo o tempo todo. Ele chama isso de SPDIF Keep-Alive. Isso mantém o sinal fluindo e meu receptor escuta constantemente. Ainda não vi uma maneira de fazer isso no Linux, mas imagino que o suporte para criar uma coisa dessas esteja em TODO LUGAR. Felizmente, isso deu a alguém uma idéia sobre o que procurar ou onde procurar em seguida! -K9SPY

O áudio digital mantém-se vivo mantém-se ativo SPDIF Keep-Alive mantém-se vivo TOSLINK keep-alive mantém-se ativo O tempo limite excede o tempo de inatividade do som SPDIF

K9SPY
fonte
1
  1. Encontre os arquivos de configuração do PulseAudio que contêm load-module module-suspend-on-idlelinhas:

    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. Comente essas linhas.

  3. Reinicie o PulseAudio para aplicar as alterações:

    pulseaudio -k

Acabei de testar no Ubuntu 17.04 e funciona bem.

neatsoft
fonte
Isso funcionou para mim em 19.04, exceto pela parte de reinicialização. Eu tive que reiniciar para reiniciar o pulseaudio porque pulseaudio -kme deu alguns erros.
muclux
0

A resposta aceita sobre o não carregamentomodule-suspend-on-idle não resolve o problema para mim. Para "consertar" isso, tive que deixar um comando de silêncio contínuo em execução em segundo plano, consulte a ATUALIZAÇÃO 2 da seguinte pergunta:

E eu reproduzi esse problema tanto nos alto-falantes internos como nos PCs através de HDMI e fones de ouvido, sem necessidade de SPDIF, nos mais recentes ArchLinux e Ubuntu.

pepper_chico
fonte