2012-11-13 16 views
6

Tôi đang cố gắng thực hiện công việc hủy bỏ tiếng vang PulseAudio.Làm thế nào để sử dụng mô-đun hủy bỏ tiếng vọng trong PulseAudio?

Tôi có hai ứng dụng - máy ghi âm và trình phát, cả hai đều sử dụng PulseAudio. Tôi tạo trình phát và trình ghi như sau:

// 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); 
     } 
} 

Tất cả đang hoạt động, ngoại trừ hủy bỏ tiếng vọng. Tôi đã bật tính năng này với

pactl load-module module-echo-cancel 

nhưng không có sự khác biệt khi và không có mô-đun đó - tiếng vang tồn tại. Tôi mới với PulseAudio, và đã không thể tìm thấy hướng dẫn sử dụng tốt về việc sử dụng echo echoer. Tôi nên thêm hoặc điều chỉnh thiết bị nào để thiết bị hoạt động?

OS - Linux, bây giờ nó là ubuntu, nhưng cuối cùng nó sẽ được openWRT

Trả lời

6

Tôi giả sử bạn đang sử dụng PulseAudio 1.0 hoặc cao hơn. Đối với cả luồng trình phát và trình phát, bạn cần đặt thuộc tính "filter.want" thành "echo-cancel". Chúng tôi không phơi bày cách thực hiện điều này bằng API đơn giản, vì vậy bạn sẽ cần phải thực hiện một cách hơi xấu xí hơn để đặt biến môi trường PULSE_PROP như thế này trước khi bạn tạo luồng sẽ thực hiện thủ thuật:

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

ps: Để hủy bỏ tiếng vang chất lượng cao, bạn muốn PulseAudio 2.0 trở lên, với sự hỗ trợ xử lý âm thanh webrtc được xây dựng - dễ dàng như thế nào để có được điều này phụ thuộc vào việc phân phối của bạn đã được đóng gói hay chưa.

+0

Có, nó hoạt động! Cảm ơn rất nhiều) – Raiv

Các vấn đề liên quan