werman / noise-suppression-for-voice

Noise suppression plugin based on Xiph's RNNoise
GNU General Public License v3.0
4.92k stars 231 forks source link

pusleaudio crashed on odroid #113

Open max529 opened 2 years ago

max529 commented 2 years ago

Hi,

I built this library from source on my odroid N2. When I try to load the plugin with the following command pulseaudio is crashing without error.

pacmd load-module module-ladspa-sink sink_name=mic_raw_in sink_master=mic_denoised_out label=noise_suppressor_stereo plugin=/home/private/download/rrnoise/noise-suppression-for-voice-0.91/bin/ladspa/librnnoise_ladspa.so control=50

I checked the journalctl but the only think I had is

Mar 08 16:28:22 odroid systemd[2407]: pulseaudio.service: Main process exited, code=killed, status=9/KILL Mar 08 16:28:22 odroid systemd[2407]: pulseaudio.service: Failed with result 'signal'. Mar 08 16:28:22 odroid systemd[2407]: pulseaudio.service: Scheduled restart job, restart counter is at 12. Mar 08 16:28:22 odroid systemd[2407]: Stopped Sound Service. Mar 08 16:28:22 odroid systemd[2407]: Starting Sound Service... Mar 08 16:28:22 odroid pulseaudio[2979]: Stale PID file, overwriting. Mar 08 16:28:22 odroid systemd[2407]: Started Sound Service.

Any ideas?

werman commented 2 years ago

You should disable pulseaudio service and start pulseaudio manually under gdb and see what happens. Maybe you compiled for the wrong arch, maybe something else...

max529 commented 2 years ago

So I tried to get more informations with gdb but pulseaudio still crashing without reason. I ran the cmd : pacmd load-module module-ladspa-sink sink_name=mic_raw_in sink_master=mic_denoised_out label=noise_suppressor_stereo plugin=librnnoise_ladspa control=50

The result in gbd : [pulseaudio] client.c: Created 4 "UNIX socket client" D: [pulseaudio] module-ladspa-sink.c: Using default input ladspa port mapping D: [pulseaudio] module-ladspa-sink.c: Using default output ladspa port mapping D: [pulseaudio] module-ladspa-sink.c: Module: librnnoise_ladspa D: [pulseaudio] module-ladspa-sink.c: Label: noise_suppressor_stereo D: [pulseaudio] module-ladspa-sink.c: Unique ID: 9354877 D: [pulseaudio] module-ladspa-sink.c: Name: Noise Suppressor for Voice (Stereo) D: [pulseaudio] module-ladspa-sink.c: Maker: werman D: [pulseaudio] module-ladspa-sink.c: Copyright: GPL v3 D: [pulseaudio] module-ladspa-sink.c: Port 0 is input: Input (L) D: [pulseaudio] module-ladspa-sink.c: Port 1 is input: Input (R) D: [pulseaudio] module-ladspa-sink.c: Port 2 is output: Output (L) D: [pulseaudio] module-ladspa-sink.c: Port 3 is output: Output (R) D: [pulseaudio] module-ladspa-sink.c: Port 4 is control: VAD Threshold (%) D: [pulseaudio] module-ladspa-sink.c: Will run 1 plugin instances D: [pulseaudio] module-ladspa-sink.c: Trying to read 1 control values D: [pulseaudio] module-ladspa-sink.c: cdata: '50' D: [pulseaudio] module-ladspa-sink.c: Read config value 50.000000 (p=0) D: [pulseaudio] module-ladspa-sink.c: Binding 50.000000 to port VAD Threshold (%) I: [pulseaudio] sink.c: Created sink 3 "mic_raw_in" with sample spec float32le 2ch 48000Hz and channel map front-left,front-right I: [pulseaudio] sink.c: device.master_device = "mic_denoised_out" I: [pulseaudio] sink.c: device.class = "filter" I: [pulseaudio] sink.c: device.ladspa.module = "librnnoise_ladspa" I: [pulseaudio] sink.c: device.ladspa.label = "noise_suppressor_stereo" I: [pulseaudio] sink.c: device.ladspa.name = "Noise Suppressor for Voice (Stereo)" I: [pulseaudio] sink.c: device.ladspa.maker = "werman" I: [pulseaudio] sink.c: device.ladspa.copyright = "GPL v3" I: [pulseaudio] sink.c: device.ladspa.unique_id = "9354877" I: [pulseaudio] sink.c: device.description = "LADSPA Plugin Noise Suppressor for Voice (Stereo) on Null Output" I: [pulseaudio] sink.c: device.icon_name = "audio-card" I: [pulseaudio] source.c: Created source 4 "mic_raw_in.monitor" with sample spec float32le 2ch 48000Hz and channel map front-left,front-right I: [pulseaudio] source.c: device.description = "Monitor of LADSPA Plugin Noise Suppressor for Voice (Stereo) on Null Output" I: [pulseaudio] source.c: device.class = "monitor" I: [pulseaudio] source.c: device.icon_name = "audio-input-microphone" D: [pulseaudio] module-stream-restore.c: Not restoring device for stream sink-input-by-media-role:filter, because already set to 'mic_denoised_out'. D: [pulseaudio] module-intended-roles.c: Not setting device for stream LADSPA Stream, because already set. D: [pulseaudio] sink-input.c: Negotiated format: pcm, format.sample_format = "\"float32le\"" format.rate = "48000" format.channels = "2" format.channel_map = "\"front-left,front-right\"" I: [pulseaudio] sink-input.c: Trying to change sample spec D: [pulseaudio] sink.c: Default and alternate sample rates are the same, so there is no point in switching. D: [pulseaudio] module-stream-restore.c: Not restoring volume for sink input sink-input-by-media-role:filter, because it connects a filter to the master sink. D: [pulseaudio] module-suspend-on-idle.c: Sink mic_denoised_out becomes busy, resuming. D: [pulseaudio] sink.c: mic_denoised_out: suspend_cause: IDLE -> (none) D: [pulseaudio] sink.c: mic_denoised_out: state: SUSPENDED -> IDLE D: [pulseaudio] module-suspend-on-idle.c: Sink mic_denoised_out becomes idle, timeout in 5 seconds. D: [pulseaudio] source.c: mic_denoised_out.monitor: suspend_cause: IDLE -> (none) D: [pulseaudio] source.c: mic_denoised_out.monitor: state: SUSPENDED -> IDLE D: [pulseaudio] module-suspend-on-idle.c: Sink mic_denoised_out becomes idle, timeout in 5 seconds. I: [pulseaudio] resampler.c: Forcing resampler 'copy', because of fixed, identical sample rates. D: [pulseaudio] resampler.c: Resampler: D: [pulseaudio] resampler.c: rate 48000 -> 48000 (method copy) D: [pulseaudio] resampler.c: format float32le -> s16le (intermediate s16le) D: [pulseaudio] resampler.c: channels 2 -> 2 (resampling 2) D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0 D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0 I: [pulseaudio] sink-input.c: Created input 0 "LADSPA Stream" on mic_denoised_out with sample spec float32le 2ch 48000Hz and channel map front-left,front-right I: [pulseaudio] sink-input.c: media.name = "LADSPA Stream" I: [pulseaudio] sink-input.c: media.role = "filter" I: [pulseaudio] sink-input.c: module-stream-restore.id = "sink-input-by-media-role:filter" D: [pulseaudio] memblockq.c: memblockq requested: maxlength=16777216, tlength=0, base=8, prebuf=1, minreq=1 maxrewind=0 D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=16777216, tlength=16777216, base=8, prebuf=8, minreq=8 maxrewind=0 D: [pulseaudio] sink.c: Default and alternate sample rates are the same, so there is no point in switching. D: [null-sink] sink-input.c: Requesting rewind due to uncorking D: [null-sink] module-null-sink.c: Requested to rewind 384000 bytes. D: [null-sink] sink.c: Processing rewind... D: [null-sink] source.c: Processing rewind... D: [null-sink] module-null-sink.c: Rewound 384000 bytes. D: [pulseaudio] module-suspend-on-idle.c: Sink mic_denoised_out becomes busy, resuming. D: [pulseaudio] sink.c: mic_denoised_out: state: IDLE -> RUNNING D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event. D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event. D: [null-sink] module-ladspa-sink.c: Requesting rewind due to state change. D: [null-sink] module-null-sink.c: Requested to rewind 384000 bytes. D: [null-sink] sink.c: Processing rewind... D: [null-sink] source.c: Processing rewind... D: [null-sink] module-null-sink.c: Rewound 8540 bytes. D: [pulseaudio] sink.c: mic_raw_in: state: INIT -> IDLE [Thread 0x7fa1d2f0d0 (LWP 4453) exited] [Thread 0x7fb1f820d0 (LWP 4448) exited] [Thread 0x7fb27e10d0 (LWP 4447) exited] [Thread 0x7fb30390d0 (LWP 4446) exited] [Thread 0x7fb73237d0 (LWP 4436) exited]

Program terminated with signal SIGKILL, Killed. The program no longer exists.

werman commented 2 years ago

SIGKILL - something killing it from outside, could you check dmesg? Could it be OOM...