2012-11-13 25 views
6

Próbuję wykonać pracę kasowania echa PulseAudio.Jak korzystać z modułu usuwania echa w PulseAudio?

Mam dwie aplikacje - rejestrator i odtwarzacz, oba używają PulseAudio. Tworzę odtwarzacz i rejestrator w ten sposób:

// pulseAudio 
pa_simple *paS=0; 
pa_sample_spec ss; 

void initPulseAudio() 
{ 
    ss.format = PA_SAMPLE_S16LE; 
    ss.channels = 1; 
    ss.rate = 8000; 


    paS = pa_simple_new(NULL,    // Use the default server. 
         "bottomPlayer",   // Our application's name. 
         PA_STREAM_PLAYBACK, 
         NULL,    // Use the default device. 
         "playStream",   // Description of our stream. 
         &ss,    // Our sample format. 
         NULL,    // Use default channel map 
         NULL,    // Use default buffering attributes. 
         NULL    // Ignore error code. 
         ); 

    if(!paS) 
    { 
     fprintf(stderr, 
       "unable to create recorder\n"); 
     myExit(1); 
     } 
} 

Wszystko działa, z wyjątkiem anulowania echa. Włączyłem tę funkcję z

, ale nie ma różnicy z tym modułem i bez niego - istnieje echo. Jestem nowy w PulseAudio i nie mogłem znaleźć dobrej instrukcji na temat użycia kasownika echa. Co powinienem dodać lub dostosować w konfiguracji moich urządzeń, aby działało?

OS - Linux, teraz jest ubuntu, ale ostatecznie będzie to OpenWrt

Odpowiedz

6

Jestem zakładając używasz PulseAudio 1.0 lub nowszej. W przypadku strumieni odtwarzacza i nagrywarki należy ustawić właściwość "filter.want" na "echo-cancel". Nie wystawiać sposób to zrobić przy użyciu prostego API, więc trzeba będzie wziąć się nieco brzydsze trasą z ustawieniem zmiennej środowiskowej PULSE_PROP jak to przed utworzeniem strumienia by rade:

setenv("PULSE_PROP", "filter.want=echo-cancel", 1); 

ps: Aby uzyskać naprawdę wysoką jakość usuwania echa, potrzebujesz PulseAudio 2.0 lub nowszego, z wbudowanym wsparciem dla przetwarzania dźwięku webrtc - jak łatwo jest to uzyskać, zależnie od tego, czy twoja dystrybucja ma już ten pakiet, czy nie.

+0

Tak, to działa! Wielkie dzięki) – Raiv

Powiązane problemy