Dec-08-2023, 06:16 PM
(This post was last modified: Dec-08-2023, 06:17 PM by marcomac01.)
Hello guys, i'm super new to this forum. My intention was to make use of PyMumble to make a client to make voice calls via Mumble.
I managed to listen the room, but i ran into issues. When i run the code on mac os it works fine, but when i run it on my Raspberry pi 3B i got these errors during the reception of sounds:
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
XXXX is a number. most people got this error online with different numbers. none of teir solutions worked for me.
i can hear everything but it skips frames it seems. not a good qality overall
i tried using pyaudio, but the quality was way much worse. plus i had to encapsulate the sream reading with try except, or the program would crash.
Thanks in advice for your help
I managed to listen the room, but i ran into issues. When i run the code on mac os it works fine, but when i run it on my Raspberry pi 3B i got these errors during the reception of sounds:
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
alsa lib pcm.c XXXX (snd_pcm_recover) underrun occurred
XXXX is a number. most people got this error online with different numbers. none of teir solutions worked for me.
i can hear everything but it skips frames it seems. not a good qality overall
i tried using pyaudio, but the quality was way much worse. plus i had to encapsulate the sream reading with try except, or the program would crash.
Thanks in advice for your help
import pymumble_py3 from pymumble_py3.callbacks import PYMUMBLE_CLBK_SOUNDRECEIVED as PCS import sounddevice as sd # Mumble server connection Settings pwd = "" server = "10.211.55.3" nick = "audio-only_client" port = 64738 # Audio stream settings CHUNK = 512*2 DATATYPE = 'int16' CHANNELS = 1 RATE = 48000 # Inistialize the audio stream using devices stream = sd.RawStream(device=("Built-in Microphone", "Built-in Output"), samplerate= RATE, channels= CHANNELS, blocksize= CHUNK, dtype= DATATYPE) def sound_received_handler(user, soundchunk): # When a sound packet arrives it is immediately written to the device output stream stream.write(soundchunk.pcm) # This part is about the connection to the Mumble Server # Setting mumble = pymumble_py3.Mumble(server, nick, password=pwd, port=port) mumble.callbacks.set_callback(PCS, sound_received_handler) mumble.set_receive_sound(1) # Starting the client and waiting to be in mumble.start() mumble.is_ready() # Starting the Stream stream.start() while True: pass