Posts by Twister21

    Das Problem hängt doch aber nicht mit udev zusammen, sondern nur damit, dass das Modul switch-on-connect von pulseaudio nicht geladen wurde. Da das einfach nur daran lag, dass ich den Befehl in der falschen Config-Datei hatte, habe ich den Beitrag gelöscht. Den Beitrag von RTFM kann ich deshalb nicht nachvollziehen.

    Hallo,


    ich muss diesen Thread jetzt erneut nutzen, da ich eine Frage zu pulseaudio habe.


    Ich habe an meinen Raspberry Pi ein USB-Mikrofon angeschlossen, das von pulseaudio als Standard genutzt werden soll. Dafür habe ich den folgenden Befehl in der system.pa (systemweiter Modus):


    set-default-source alsa_input.usb-Samson_Technologies_Samson_UB1-00.analog-stereo


    Ich möchte nun aber erreichen, dass dieses Mikrofon erneut ausgewählt wird, wenn es vom USB-Port getrennt und wieder verbunden wurde. Derzeit ist dafür ein Neustart von pulseaudio notwendig. Dies soll jedoch automatisch geschehen.

    Ich verzweifle nur daran, dass Pulseaudio in der Regel bei maximal 20% Auslastung läuft und dann einfach spontan bei einer zufälligen Wiedergabe die Auslastung auf 80% ansteigt und die Ausgabe dadurch stark verzerrt bzw. auch beschleunigt wird.

    In der Übersicht von top wird mir dieser Wert angezeigt. Entweder ich greife direkt auf Pulseaudio zu, wodurch der Java-Prozess eine Auslastung von 200% besitzt und nach einer Zeit das Mikrofon anscheinend nicht mehr reagiert oder ich greife mit Java auf ALSA zu, wodurch die Auslastung von Pulseaudio auf bis zu 80% ansteigt. Dadurch kommt es zur verzerrten Wiedergabe.

    Ich habe gerade libpulse-jni und libpulse-java installiert, damit ich in der sound.properties Datei von Java Pulseaudio anstatt Alsa benutzen kann. Nun tritt keine Verzerrung der Audio-Dateien mehr auf, die mit Java abgespielt werden, jedoch hat der Java-Prozess eine Auslastung von bis zu 200%. Pulseaudio steht während der Wiedergabe bei maximal 20%.


    Womit kann das zusammenhängen? Nun ist mir auch aufgefallen, dass die Verbindung zum Mikrofon nach einiger Zeit abbricht.

    Hallo,


    das hatte ich bereits gelesen und auch ausprobiert, Dennoch tritt das Problem weiterhin auf. Wie bereits angesprochen, ist es besonders auffällig, dass diese Überlastung des Prozessors am häufigsten dann auftritt, wenn pulseaudio nach längerer Zeit aufgerufen wird. Jedoch klappt das teilweise dann auch wieder problemlos.

    Ich glaube, dass das leider nicht damit zusammenhängt. Mir ist aufgefallen, dass die angezeigte Prozessorauslastung für pulseaudio manchmal bei einer Wiedergabe auf etwa 60% ansteigt und in diesem Zusammenhang auch das Problem auftritt. Jedoch ist die Prozessorauslastung von pulseaudio häufig auch nur bei 12%. Damit tritt dann auch kein Problem auf.

    Hallo,


    ich habe mir noch keinen USB-Hub gekauft, da das alte Problem bisher nicht mehr aufgetreten ist. Jedoch habe ich nun das Problem, dass manchmal die Wiedergabe von pulseaudio extrem schlecht ist. Das heißt, dass der Sound extrem kratzt und auch sehr schnell und undeutlich wiedergegeben wird. Das ist aber nicht immer so, sondern tritt ganz zufällig auf.


    Kann dieses Problem auch mit einer nicht ausreichenden Stromversorgung zusammenhängen? Oder gibt es Einstellungen in der Konfiguration von pulseaudio, die getätigt werden müssen? Mit reinem ALSA tritt dieses Problem nicht auf. smutbert


    EDIT: Das Problem tritt nun anscheinend immer auf, wenn die Lautsprecher für längere Zeit nicht genutzt wurden. Dann kommt es bei der ersten Wiedergabe nach einer Pause wieder zur schnellen Wiedergabe und dem Kratzen.


    EDIT 2: Mir ist gerade aufgefallen, dass die CPU-Auslastung von pulseaudio auf fast 80% ansteigt, wenn dieses Problem auftritt. Sonst ist diese bei etwa 10%.

    Hallo,


    an dem Raspberry Pi befindet sich eine USB-Soundkarte, ein USB-Mikrofon, eine USB-Festplatte und das USB-Kabel der Lautsprecher für die Stromversorgung. Damit sind die vier USB-Ports belegt. Das heißt, dass eine einfache Lösung für das Problem ein USB-Hub ist, der extern über Strom versorgt wird. Daran könnte ich dann die Festplatte und das Mikrofon anschließen, welche anscheinend eine größere Stromstärke als die anderen Geräte benötigen.


    Ich werden den Versuch mit nur einem USB-Gerät dann durchführen, um zu wissen, ob ich die beschriebene Lösung nutzen kann.

    Hallo,


    das Problem ist nun wieder aufgetreten. Hier sind die Ausgaben von dmesg:


    [Blocked Image: https://img.twister21.de/jXv9ek]


    Was bedeutet die Meldung "Transfer to device 5 endpoint 0x2 frames [...]"?


    Kann das vielleicht damit zusammenhängen, dass ich in der config.txt unter /boot folgende Zeile hinzugefügt habe?:

    max_usb_current=1


    Das ist jedoch notwendig, um auch die Festplatte noch an dem Raspberry Pi betreiben zu können. Oder deutet der Abbruch der USB-Verbindung des Mikrofons auf eine Überlastung hin?


    smutbert

    Hallo,


    in der Datei daemon.log konnte ich nun folgende Einträge finden:

    Feb 28 22:40:57 raspberrypi pulseaudio[23666]: W: [alsa-source-USB Audio] alsa-util.c: Got POLLNVAL from ALSA

    Feb 28 22:40:57 raspberrypi pulseaudio[23666]: W: [alsa-source-USB Audio] alsa-util.c: Could not recover from POLLERR|POLLNVAL|POLLHUP with snd_pcm_prepare(): No such device

    Nun ist der Zustand mal wieder eingetreten. Das heißt, dass die Lautstärke des Aufnahmegeräts "Capture" von PulseAudio auf 40% gesetzt wurde. Zudem wird das Mikrofon bei unter "pactl list sources short" nicht mehr angezeigt. Die Status-LED am Mikrofon leuchtet jedoch weiterhin.


    Ich bin davon ausgegangen, dass das Mikrofon für den Dauerbetrieb ausgelegt ist. Ich stelle eher den Zusammenhang mit PulseAudio her, da dieses Problem mit dem reinen ALSA nie aufgetreten ist. Dazu gehört auch, dass die Lautsprecher teilweise übersteuern, was erst mit PulseAudio eingetreten ist.


    smutbert

    Hallo,


    ich habe das Mikrofon auf eine Lautstärke von 130 gesetzt. Jedoch passiert es teilweise, dass diese Lautstärke auf 40 gesetzt wird. Das kann aber auch nicht stimmen, da ich in diesem Zustand überhaupt keinen Ton, sondern nur ein leises Rauschen hören kann.

    Hallo,


    mein Problem ist nun schon seit Längerem gelöst.

    Jedoch stelle ich manchmal fest, dass mein Mikrofon nicht nicht mehr aktiv ist. Das heißt, dass der Befehl "pactl list short sources" hinter dem Mikrofon ein "IDLE" anzeigt und der Befehl alsamixer nicht die eigentliche Lautstärke des Mikrofons darstellt.


    Das passiert immer mal wieder, jedoch lässt sich das Problem durch einen Neustart von pulseaudio lösen. Hängt dieses Verhalten eventuell damit zusammen, dass alle Module deaktiviert sind?


    smutbert

    Stimmt,


    ich nehme an, dass dieser Fehler dadurch zu Stande gekommen ist, dass die Jar-Datei während der Laufzeit ausgetauscht wurde. Jedoch besteht das Haupt-Problem noch immer. Es kommt mir mit Pulseaudio so vor, als wären die Aufnahmen vom Mikrofon über Java verzögert, sodass nicht in Echtzeit aufgenommen wird, was aber unbedingt erforderlich ist. Ich schließe es aus, dass dieser Fehler mit Java zusammenhängt, da ich mit ALSA keine Probleme hatte, jedoch die Lautstärke nicht immer gereicht hat, was der Grund für den Wechsel auf Pulseaudio war.


    Wie muss ich Pulseaudio konfigurieren, um es mit höchster Leistung benutzen zu können, in der Hoffnung, dass dadurch keine Verzögerung auftritt bzw. diese minimiert wird?


    EDIT: Interessanterweise tritt bei einer Aufnahme über arecord keine Verzögerung auf. Wird hier auch über Pulseaudio aufgenommen? Dann müsste es ja doch im Zusammenhang mit Java stehen. smutbert

    Hallo,


    mir ist gerade die Datei hs_err_pid<Nummer>.log im Verzeichnis /root aufgefallen.


    Diese beinhaltet folgende Fehlermeldung:


    In welchem Zusammenhang steht diese Fehlermeldung mit pulseaudio?

    Okay, das Problem ist gelöst.


    Leider kommt es immer noch dazu, dass meine Lautsprecher teilweise nur rauschen, anstatt etwas mit der Google Translator Stimme auszugeben. Wie kann das passieren? Mit ALSA hat es wunderbar funktioniert.


    Außerdem scheint es immer noch ein wenig Verzögerung bei der Aufnahme mit dem Mikrofon zu geben. Das sind etwa 2 - 3 Sekunden.

    Hallo,


    ich habe in meiner selbstentwickelten Java-Anwendung eine Schleife, die in jeder Wiederholung prüft, ob die Lautstärke in dem Moment größer ist, als ein festgelegter Wert. Sollte das so sein, wird ein Request an den Google Server gemacht. Das hat mit ALSA auch sehr gut funktioniert. Nun passiert es jedoch, dass ich spreche und die Benachrichtigung, dass die Lautstärke erreicht wurde, erst Sekunden später auftritt. Damit wird es verzögert, was bei ALSA aber schon funktioniert hatte.


    EDIT: Das Problem ist jetzt anscheinend gelöst, aber das Problem ist, dass ich die folgende Zeile nicht in die system.pa eintragen kann:

    "set-source-volume alsa_input.usb-Samson_Technologies_Samson_UB1-00-UB1.analog-mono 130%"


    Es erscheint die Fehlermeldung: "Failed to parse volume".