USB-Mikrofon einrichten

  • Hallo,


    ich möchte das USB-Mikrofon Samson UB1 an den Raspberry Pi anschließen, um eine Sprachsteuerung zu realisieren (Grenzflächenmikrofon mit Kugelcharakteristik). Neben diesem Mikrofon sind am Pi auch noch Lautsprecher über eine USB-Soundkarte angeschlossen. Diese sind bereits als Standard-Ausgabegerät festgelegt. Nun möchte ich das Mikrofon noch als Standard-Eingabegerät festlegen, weiß aber nicht, in welcher Konfigurationsdatei dies gemacht werden muss. Die Lautsprecher (bzw. die Soundkarte) sollen trotzdem noch aktiv bleiben.


    Eine Aufnahme über das Mikrofon konnte ich mit dem Befehl "arecord /home/test.wav -D sysdefault:CARD=2" schon durchführen, wobei ich aber feststellen musste, dass die Audioqualität am Pi nicht wirklich gut ist und ein starkes Rauschen zu hören ist. Bei einer Aufnahme mit Audacity am Windows PC tritt kein Rauschen auf und die Audioqualität ist wie gewünscht. Welche Einstellung muss ich dafür am Pi treffen?


    Es würde mich sehr freuen, wenn ihr mir bei der Installation des Mikrofons helfen könntet.


    Mit freundlichen Grüßen
    Twister21

  • Hilft vielleicht das?
    https://wiki.debianforum.de/Audiokonfiguration


    Für konkretere Hilfe müsstest du zB verraten ob du Pulseaudio verwenden willst und wenn nicht, was ich nach deinem Post vermute ich ja, das du beim nackten Alsa beliben willst. Dann wäre auch interessant ob du mit mehreren Anwendungen gleichzeitig Audio wiedergeben und/oder aufnehmen willst oder ob ein Programm ein Gerät exklusiv in Beschlag nehmen darf/soll. Außerdem wären die Ausgaben von

    Code
    $ aplay -l
    $ arecord -l


    bei angeschlossenen Mikrofon und Lautsprechern sehr interessant.

  • Hallo,


    danke für den Link, durch welchen ich nun meine Vigo USB-Soundkarte als Standardgerät für die Ausgabe festlegen konnte, zumindest teilweise. Daran angeschlossen sind Lautsprecher, welche eine Audiodatei über das Programm mplayer abspielen können. Leider ist der eigentliche Zweck, dass eine selbstprogrammierte Java-Anwendung einen Sound ausgeben kann, noch nicht erfüllt. Diese Ausgabe findet über den Klinkenausgang des Raspberry Pi statt aber nicht - wie eigentlich gewünscht - ebenfalls über die Soundkarte, wie es der mplayer macht. Die /etc/asound.conf sieht bisher so aus:


    Code
    pcm.!default {
           type hw
           card Device
    }
    ctl.!default {
           type hw
           card Device
    }


    Die Karte "Device" ist meine Vigo USB-Soundkarte. Das weiß ich durch die Ausgabe von aplay -l, die so aussieht:



    Nun möchte ich neben den Lautsprechern noch ein USB-Mikrofon anschließen. Wie der Name schon sagt, wird dieses nicht über Klinke an die Soundkarte, sondern über USB angeschlossen. Das bedeutet, dass die Soundausgabe über die USB-Soundkarte stattfinden soll, aber die Soundeingabe über USB und das Mikrofon aber nicht über den Mikrofon-Eingang der Soundkarte.


    Damit ist Problem Nr. 2 verbunden, weil ich die passende Konfiguration nicht zusammengestellt bekomme. Zudem würde ich den Pegel bzw. die Empfindlichkeit/Lautstärke des Mikrofons - wie bei Windows - noch gerne höher einstellen. Die Ausgabe von arecord -l sieht so aus:


    Code
    card 1: UB1 [Samson UB1], device 0: USB Audio [USB Audio]
     Subdevices: 1/1
     Subdevice #0: subdevice #0
    card 2: Device [Generic USB Audio Device], device 0: USB Audio [USB Audio]
     Subdevices: 1/1
     Subdevice #0: subdevice #0


    Das zu verwendende Mikrofon ist das Samson UB1 (Karte 1, Name="UB1"). Die Soundkarte, die nicht verwendet werden soll ist hier Karte 2 und trägt wieder den Namen "Device".


    Ich hoffe, dass ihr mir mit diesen Informationen helfen könnt, die zwei Probleme zu lösen. Ich möchte das Mikrofon und die Lautsprecher im Prinzip nur für die Java-Anwendung verwenden. Eventuell könnte sich das ändern, falls ich mit einer anderen Anwendung (z.B. dem mplayer) Musik über die Lautsprecher abspielen möchte.


    Mit freundlichen Grüßen
    Twister21

  • Mein Vorschlag


    Der Default ist also ein plug, das auf das asym-Plugin verweist, welches wiederum das USB-Mikrofon und über dmix, zur simultanen Wiedergabe mit mehreren Anwendungen, die USB-Soundkarte zu einer Art virtuellen Soundkarte zusammenfasst.


    Was mit deiner java-Anwendung passiert weiß ich nicht. Normalerweise geben Alsa-Anwendungen ohne weiteres zutun über das in der asound.conf oder ~/.asoundrc festgelegte Defaultgerät wieder oder falls diese Konfigurationsdateien nicht existieren über das erste Gerät der ersten Soundkarte (das wäre dann die Klinkenbuchse des RPi).

    Edited once, last by smutbert ().

  • Hallo,


    danke für das Bereitstellen der Konfigurationsdatei. Das zweite Problem konnte ich lösen, indem ich eine Anpassung in der sound.properties der Java-Installation auf dem Raspberry Pi vorgenommen habe.


    Mit freundlichen Grüßen
    Twister21

  • Hallo,


    mir ist nach einer kurzen Testphase aufgefallen, dass die Aufnahme, die ich mit meinem Mikrofon für die Spracherkennung mache, zu leise ist. Aus diesem Grund habe ich versucht, dass die Aufnahmelautstärke über das Programm alsamixer erhöht wird. Mit dem alsamixer kann ich aber nur die Lautstärke der Lautsprecher anpassen. Die Einstellungen, welche ich für das Mikrofon vorgenommen habe, haben keine Auswirkung auf die Aufnahme. Das habe ich daran erkennt, dass die Funktion zum Muten des Mikrofons wirkungslos ist.



    Nun ist meine Frage, wie ich dafür sorgen kann, dass der alsamixer Einfluss auf das Mikrofon nehmen kann, um die Lautstärke zu erhöhen. Ansonsten muss ich mir für die Verstärkung des Mikrofons ein anderes Programm suchen.


    Mit freundlichen Grüßen
    Twister21

  • Jede Soundkarte hat ihre eigenen Wiedergabe- und Aufnahmeregler. alsamixer zeigt nach dem Start nur die Wiedergaberegler des Defaultgeräts. In alsamixer kannst du mit <F6> die Soundkarte auswählen und mit <F4> die Aufnahmeregler oder mit <F5> alle Lautstärkeregler anzeigen lassen.
    Oder du startest alsamixer mit

    Code
    $ alsamixer -D hw:UB1 -V capture


    und lässt dir so von Anfang an die gewünschten Regler des Mikrofons anzeigen (wenn das Mikrofon überhaupt eigene Regler bietet, was keine Selbstverständlichkeit ist). Wenn es einen Regler gibt und der schon auf 100% steht gibt es vielleicht einen Schalter, der irgendwie mit Auto Gain Control, AGC oder etwas ähnlichem was mit Verstärkung zu tun hat beschriftet ist, den du testweise aktivieren könntest (<00> bedeutet ein, <MM> ist aus).

    Edited once, last by smutbert ().

  • Hallo,


    über Google bin ich auf die Fragen von Twister21 gestossen, der ähnlich Probleme mit dem UB1 Mikrofon hat wie ich. Bevor ich das USB Mikrofon installiert habe hat Jasper über die
    USB Soundkarte funktioniert. Jetzt mit dem USB Mikro(UB1) bekomme ich keine Audio Ausgabe mehr und Jasper bricht den Start ab. Die Angaben von smutbert habe ich übernommen, welche
    Einstellungen muss ich noch ändern? Es würde mich freuen, wenn Ihr mir helfen könntet. Hier noch ein paar Angaben.


    pi@raspberrypi ~ $ cat /proc/asound/cards
    0 [UB1 ]: USB-Audio - Samson UB1
    Samson Technologies Samson UB1 at usb-3f980000.usb-1.2, full speed
    1 [Set ]: USB-Audio - C-Media USB Headphone Set
    C-Media USB Headphone Set at usb-3f980000.usb-1.3, full speed


    Beim alsamixer -c1 stehen die Einstellungen wie folgt: Card: C-Media USB Headphone Set
    x Chip: USB Mixer
    x View: F3: Playback F4: Capture F5:[All]
    Es sind auch zwei Mikrofone zu sehen.
    Die ausgewählte Soundkarte ist die Card: C-Media USB Headphone Set


    Card0 ist das Mikrofon UB1
    Card1 USB Audio


    Mit freundlichen Grüßen
    tkmaggie96

  • Hallo smutbert,


    wie kann ich diese Konfigurationsdatei anpassen, um mehreren Anwendungen zu ermöglichen, auf das Mikrofon zuzugreifen bzw. die Daten vom Mikrofon zu lesen? Ich habe gesehen, dass ALSA ein Dsnoop Plugin bereitstellt, das das Mikrofon für mehrere Applikationen zur Verfügung stellen kann. Wie aber kann ich dieses Plugin in die Konfigurationsdatei einbinden? Bzw. muss das Plugin noch installiert werden?

  • Hi,


    war schon lange nicht mehr hier im Forum, deshalb ist mir wohl auch tkmaggie96s Frage entgangen. Also tkmaggie96, sollte das Problem noch aktuell sein, verrate doch bitte deine aktuelle Konfigurationsdatei (wenn du sie unverändert übernommen hast, kann es nicht funktionieren, dann musst du nur "Device" durch den Namen deiner Soundkarte "Set" ersetzen).


    und nun zu dir Twister21


    Im Grunde ist es ganz einfach, allerdings kann ich mich nicht mehr erinnern ob es einen bestimmten Grund hat(te), dass ich im Aufnahmezweig zwei plug-Plugins eingebaut habe, aber ich vermute es war keine Absicht, daher hab ich das auch geändert:


    unverändert übernehmen kannst du es nur, wenn dein Mikrofon ebenfalls UB1 und deine Soundkarte Device heißt, sonst musst du das natürlich anpassen.

  • Ups, entschuldige, ich habe beim Schreiben des Beitrages nicht gemerkt, dass du ja den Thread eröffnet hast (deswegen mein Hinweis auf die Namen der Soundkarten). Ich rede mich auf das neue Design des Forums aus, das mich durcheinander bringt…

  • smutbert


    Hallo, ich habe noch eine Frage.


    Ist es vielleicht möglich, direkt über ALSA die Mikrofonlautstärke auf mehr als 100% zu setzen? Unter Windows gibt es neben der Lautstärkeinstellung für das Mikrofon auch die Mikrofonverstärkung, für die man einen Wert zwischen 0 und 30 dB einstellen kann.


    Ist das unter Linux auch möglich bzw. ist dazu eine weitere Software notwendig?

  • Möglicherweise. Per Software weiter zu verstärken, also eigentlich nach der Aufnahme ist unter Alsa ohne gezielte Bearbeitung oder vielleicht das Einschleifen von Plugins (das ich bis jetzt sonst nur für die Wiedergabe, aber nicht die Aufnahme kenne) nicht möglich. Das böte nur Pulseaudio.


    Allerdings bietet vielleicht dein Mikrofon bzw. dessen Treiber bereits eine Funktion dafür. Sieh einfach nach ob du mit $ alsamixer -D hw:UB1 --view=all einen entsprechenden Regler oder Schalter findest (Gain, Autogain, Boost oder etwas ähnliches) und wenn ja, ob der das gewünschte bewirkt.

  • Hallo,


    ich kann in diesem Menü leider nur die Lautstärke von 0 bis 100 einstellen. Oben links steht dB Gain: 24.0. Kann ich Pulseaudio zusätzlich zu Alsa nutzen oder muss dafür noch etwas eingestellt werden? Ansonsten schaue ich erstmal selbst, welche Möglichkeiten Pulseaudio bietet.

  • Der positive Wert (24) bedeut ja eigentlich schon, dass verstärkt wird (allerdings glaube ich nicht, dass dieser Wert bei einem USB-Mikrofon irgendeine große Aussagekraft hat).


    Pulseaudio kannst du einfach installieren und verwenden, die Konfiguration läuft dort aber deutlich anders. (In vielerlei Hinsicht einfacher und flexibler, aber meiner bescheidenen Meinung nach gelegentlich etwas unpraktisch bei Systemen, die ohne Kommandozeile/Desktopoberläche und übliche Ein-/Ausgabegeräte wie Tastatur und Monitor laufen.)

    Du müsstest als Alsagerät nur "default" angeben, damit Pulseaudio verwendet wird, falls die fragliche Anwendung (die Sprachsoftware Pulseaudio nicht direkt unterstützt) und dann Wiedergabe- und Aufnahmegerät entweder in der Anwendung oder mit den üblichen Pulseaudiotools festlegen.


    Darüber hinaus gebe ich zu bedenken, dass Pulseaudio nur in Software verstärken kann, wobei der Informationsgehalt der Audiodaten bzw. deren Qualität unverändert bleibt oder im schlimmsten Fall sogar schlechter wird (und ich gehe davon aus, dass die Sprachsoftware das selbst genauso gut macht, sollte es zweckdienlich sein).

  • smutbert


    Hallo,


    ich habe nun pulseaudio installiert und den Daemon in der Konfigurationsdatei daemon.conf aktiviert. Dort findet man einige Einstellungen, jedoch weiß ich nicht, wo ich einen Mikrofon-Boost aktivieren kann.

  • Mit dem alsamixer kann ich aber nur die Lautstärke der Lautsprecher anpassen. Die Einstellungen, welche ich für das Mikrofon vorgenommen habe, haben keine Auswirkung auf die Aufnahme. Das habe ich daran erkennt, dass die Funktion zum Muten des Mikrofons wirkungslos ist.

    Auszug aus < man alsamixer >


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Hallo,


    dieses Problem ist bereits gelöst. Es geht nun darum, wie ich mit Pulseaudio eine Mikrofonverstärkung z.B. um 10 dB einrichten kann, wie es auch bei Windows möglich ist. Es kommt mir so vor, als wäre das Mikrofon nun leiser und rauscht weniger. Wie sehr es rauscht ist aber fast egal, da die Lautstärke entscheidend ist, damit eine Google API die aufgenommene Sprache gut in Text umwandeln kann.