ubuntuusers.de

Automatisch transskribieren/Audiobrücke herstellen

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

marant

Anmeldungsdatum:
12. Mai 2020

Beiträge: 53

Wieso sicherst du die nicht und machst die reinstall? Würde mir keine Gedanken machen. Hast Du da selbst mal editiert? Nix default-sink, compressor etc., was Userbezogen wäre.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3162

Wohnort: Köln

Ich habe jetzt einen Weg gefunden.

  • Zunächst einen Mediaplayer, z.B. VLC, mit einem Medium starten.

  • Alle anderen Programme schließen, die einen Ton produzieren könnten.

  • Dann Google Chome / Chromium starten.

  • Dann Google Docs aufrufen und ein leeres Dokument öffnen.

  • Nun folgenden Befehl ganz kopieren und absetzen:

    echo "##### Jetzt innerhalb 10 Sek. Google Docs Tools-->Transskript starten" \
    && echo "##### und Mikrofonsymbol klicken." \
    && sleep 10 \
    && pacmd list-sources | grep -e 'source(s) available' -e 'index:' -e 'name:' -e device.description -e device.string -e '-input-' \
    && pacmd list-source-outputs | grep -e 'source output(s) available' -e 'index:' -e 'source:' -e 'client:' -e 'direct on input:' 
  • In der dann folgenden Ausgabe (beispielhaft) die markierten Indexwerte merken.

    2 source(s) available.
        index: 0
    	name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
    		device.description = "Monitor of Eingebautes Tongerät Analog Stereo"
    		device.string = "0"
      * index: 1
    	name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
    		device.string = "front:0"
    		device.description = "Eingebautes Tongerät Analog Stereo"
    		analog-input-internal-mic: Internes Mikrofon (priority 8900, latency offset 0 usec, available: unknown)
    				device.icon_name = "audio-input-microphone"
    		analog-input-dock-mic: Mikrofon der Docking-Station (priority 7800, latency offset 0 usec, available: no)
    				device.icon_name = "audio-input-microphone"
    		analog-input-mic: Mikrofon (priority 8700, latency offset 0 usec, available: no)
    				device.icon_name = "audio-input-microphone"
    	active port: <analog-input-internal-mic>
    5 source output(s) available.
        index: 4
    	source: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
    	client: 55 <PulseAudio-Lautstärkeregler>
        index: 5
    	source: 1 <alsa_input.pci-0000_00_1b.0.analog-stereo>
    	client: 55 <PulseAudio-Lautstärkeregler>
        index: 11
    	source: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
    	client: 55 <PulseAudio-Lautstärkeregler>
    	direct on input: 54
        index: 31
    	source: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
    	client: 55 <PulseAudio-Lautstärkeregler>
    	direct on input: 229
        index: 54
    	source: 1 <alsa_input.pci-0000_00_1b.0.analog-stereo>
    	client: 62 <Chrome input>
  • Den Mediaplayer pausieren und den gewünschten Start einstellen.

  • Folgenden Befehl nun ganz in einen Editor kopieren, die Indexwerte passend ersetzen und dann im Terminal starten.

    echo "##### Jetzt innerhalb 5 Sek. Mediaplayer starten" \
    && echo "##### und Google Docs Mikrofonsymbol klicken." \
    && sleep 5 \
    && pacmd move-source-output $((54 + 1)) 0 \
    && pacmd set-source-mute 1 1 \
    && pacmd list-source-outputs | grep -e 'source output(s) available' -e 'index:' -e 'source:' -e 'client:' -e 'direct on input:' \
    && echo "##### In der vorstehenden Ausgabe sollte unter dem Index (54 + 1)" \
    && echo "##### der client <Chrome input> auftauchen, sonst ist ws schief gelaufen." \
    && echo "##### Nun nichts mehr am Rechner anklicken und warten bis das Transskribieren" \
    && echo "##### abgeschlossen ist (kann auch durch längere Stille passieren)." \
    && echo "##### Anschließend nicht vergessen das Mikrofon wieder zu aktivieren" \
    && echo "##### mit: pacmd set-source-mute 1 0" 
  • Zum Abschluss das Mikrofon wieder aktivieren und das Google-Dokument abspeichern.

Könnte das bitte jemand mal testen, dann könnte ich die Anleitung im Artikel Transkriptionsprogramme platzieren.

Ein alternativer Weg könnte evtl. auch mittels

pacmd set-default-source SOURCE 

funktionieren. Dabei müsste dann in Google Docs nach Aktivieren des Transskript-Tools mittels Klicken auf das Kamera-Symbol in der Browser-Adresszeile das Mikrofon "Standardeinstellung" ausgewählt werden.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3162

Wohnort: Köln

marant schrieb:

bei mir geht's. selbst das(ohne namen) "pacmd load-module module-alsa-source" läd der als neue source (kommt meldung von pasystray)

Merkwürdig, warum das bei mir nicht funktioniert. Könntest Du vielleicht etwas näher erläutern, was Du da genau gemacht hast. Vielleicht geht das ja nur mit pasystray, was wie schon erwähnt bei mir unter Unity nicht läuft.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3162

Wohnort: Köln

marant schrieb:

Lösung in Pulseaudio https://endless.ersoft.org/pulseaudio-loopback/

Das dürfte ebenfalls an dem erwähnten Fokus-Problem mit Google Docs scheitern. Ich hab' da unter dem dazugehörigen Video in den Kommentaren mal eine Anfrage reingestellt, vielleicht kommt da ja mal was.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3162

Wohnort: Köln

marant schrieb:

Wieso sicherst du die nicht und machst die reinstall? Würde mir keine Gedanken machen. Hast Du da selbst mal editiert?

Nicht dass ich wüsste, ich glaub' nicht so ganz, dass es an meiner Installation liegen könnte.

Nix default-sink, compressor etc., was Userbezogen wäre.

Was meinst Du damit?

marant

Anmeldungsdatum:
12. Mai 2020

Beiträge: 53

Hallo Ulf. da wäre mir doch beinahe der Kaffee..., naja jedenfalls nicht da, wo er hinghört. Du schriebst vor wenigen Tagen: "Du warst ja noch fleißig.." und dann DAS. Offenbar gab's Gestern kein Damenbesuch, man könnte glatt behaupten: Frauen halten uns Männer von der eigenen Entwicklung ab. (Ich bin mir sicher, irgendein Philosoph hat sich da genügend ausgelassen(war's u.a. Nietzsche? - der mit dem Hund))
Erstmal Chapeau! für Deinen Weg. Die Geduld des Erstellens habe ich nicht,(Testen, bis es läuft nervt einfach) ich "klaue" mir Sowas im Netz zusammen und passe Das dann an.

marant

Anmeldungsdatum:
12. Mai 2020

Beiträge: 53

Ich habe jetzt einen Weg gefunden.

Funktioniert! *.monitor ist Quelle. Bei mir ☺ solange, nicht mein email_script zuschlägt (eMails vorlesen/ alle Player/ Browser muten, dann wieder rückgängig). Gut, dann das script vorher killen. Schön zu sehen, das es funktioniert.

pacmd move-source-output 

(in pavucontrol/Aufnahme)

PS.
Bevor Du es plazierst, warte erstmal. Wenn es Keiner weiter testet, muss ich hier erstmal alle Sachen, die bei mir reinfunken könnten, abschalten, um ganz sicher zu gehen, das es Jeder nutzen kann.

marant

Anmeldungsdatum:
12. Mai 2020

Beiträge: 53

Nochwas zur Vereinfachung. Packe doch das Ganze in eine Datei. Also ohne, das der Nutzer die Werte selbst eintragen muss. Wichtig wäre auch Schreiben von Dem was ausgelesen/bewegt wird in eine ~/*.log. (Eigene nervige Erfahrung)
Warum das? "pacmd set-source-mute 1 1 " Was ist, wenn mehrere Mikros/Eingänge vorh. sind?

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3162

Wohnort: Köln

marant schrieb:

da wäre mir doch beinahe der Kaffee..., naja jedenfalls nicht da, wo er hinghört. Du schriebst vor wenigen Tagen: "Du warst ja noch fleißig.." und dann DAS. Offenbar gab's Gestern kein Damenbesuch, man könnte glatt behaupten: Frauen halten uns Männer von der eigenen Entwicklung ab.

Danke für den Lacher 😀

marant schrieb:

Nochwas zur Vereinfachung. Packe doch das Ganze in eine Datei. Also ohne, das der Nutzer die Werte selbst eintragen muss.

Letzteres lässt sich nicht vermeiden, denn nach jedem Transskript-Lauf ändert sich der Index für den Aufnahme-Stream. Das ließe sich sicher mit einem raffinierten Bash-Skript (z.B. das Erscheinen des Chrom-Aufnahme-Streams mittels Schleife im Sekundentakt abfragen, und dann sofort umschalten und VLC sekundengenau starten) bewerkstelligen, aber mir geht da erst mal die Puste aus.

Wichtig wäre auch Schreiben von Dem was ausgelesen/bewegt wird in eine ~/*.log. (Eigene nervige Erfahrung)

Verstehe ich jetzt nicht ☹

Warum das? "pacmd set-source-mute 1 1 "

Weil sonst jedes Geräusch im Raum in das Transskript mit einbezogen wird. Ich greife ja den Monitor vom Mixer ab, da ist dann alles drin, was "Krach" macht.
EDIT: Alternativ könnte man das natürlich auch nutzen, um in den Stille-Lücken was einzusäuseln, damit das Transskript nicht automatisch abbricht.

marant

Anmeldungsdatum:
12. Mai 2020

Beiträge: 53

Wichtig wäre auch Schreiben von Dem was ausgelesen/bewegt wird in eine ~/*.log. (Eigene nervige Erfahrung)

Verstehe ich jetzt nicht ☹

Na, wenn doch was schiefgeht. (wenn's automatisch gehen soll)

Nochmal zum Micro, Du bewegst doch die Quelle, wieso ist das dann zu hören? Ok, ich ziehe das zurück

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3162

Wohnort: Köln

marant schrieb:

Na, wenn doch was schiefgeht. (wenn's automatisch gehen soll)

Ich versteh's immer noch nicht, Alles wichtige erscheint doch auf dem Terminal. Die Anleitung ist nicht "bullet proof", wenn was schief geht, muss der Nutzer eh ran, den "Befehl" anzupassen, und dafür tiefer in die Materie einsteigen 😈 .

Nochmal zum Micro, Du bewegst doch die Quelle, wieso ist das dann zu hören? Ok, ich ziehe das zurück

Es hat wohl Klick gemacht. Ich bewege nicht die Quelle (Mikrofon), sondern den Stream, den Chrome aus der Quelle rauszieht, zu einer anderen Quelle (Monitor).
Vielleicht gibt's auch eine trickreiche Möglichkeit, der Google-Docs-Seite im Chrome den "Fokus-Sensor" wegzunehmen, dann könnte man den Umzug wie anfangs gedacht ganz einfach bequem mit pavucontrol durchführen.

marant

Anmeldungsdatum:
12. Mai 2020

Beiträge: 53

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3162

Wohnort: Köln

UlfZibis schrieb:

..., dann könnte ich die Anleitung im Artikel Transkriptionsprogramme platzieren.

Fertig !!!

jasoncoledes

Anmeldungsdatum:
11. November 2020

Beiträge: Zähle...

UlfZibis schrieb:

Hallo,

ich habe hier ein Video, für das ich Untertitel erstellen möchte.

Die einfachste Möglichkeit ist, das Video auf Youtube hochzuladen, und deren automatische Transskiption zu nutzen. Doch leider hat das einen Haken, denn man muss wohl ewig warten, bis ein Transskript vorliegt. Ich vermute, das wird erst erstellt, wenn das Video ausreichend Aufrufe bekommen hat.

Eine weitere Möglichkeit gibt es über Google Docs wie hier unter Methode 3 beschrieben 🇬🇧. Dazu muss man es schaffen, eine Brücke zwischen Lautsprecher und Mikrofon herzustellen. Für Windows gibt es da die Softwäre VB Virtual Audio Cable 🇬🇧. Wie kann ich so was auf Ubuntu bewerkstelligen?

Hello, You can even Transcribe your youtube video using the Audio-AI Speech-to-text software. This way you can transcribe your video more accurately. refer to the last point in the mentioned article.

djamana

Anmeldungsdatum:
17. April 2021

Beiträge: Zähle...

Leutz ich habe eine andere Lösung für das Problem gefunden. Aber mal eins nach dem anderen.

Die Herausforderung: Nun kurz das Problem bei der Spracheingabe ist dass diese Stoppt sobald das Chromium Fenster der Focus verliert Oder mit anderen Worten wenn ich wo außerhalb klicke und der Chromium Fenster Titel grau wird. (Ich muss aber kurz das Fenster verlassen um im Lautstärkeregler im Tab[Aufnahme] von Mikrophon auf Monitor zu schalten.)

Workaround: Einfach https://translate.google.com/ verwenden - da tritt das Problem nicht auf.

Ausgangslage:

  • Chromium https://docs.google.com/document dort mit Tools/Spracheingabe das Mikrophon Fensterchen geöffnet (Das Fenster mit WindowsTaste+cursor nach Süd auf die linke Bildschirmhälfte )

  • pavucontrol Lautstärkeregler mit Tab[Aufnahme] (Das Fenster hoch auf NordOst einrasten)

  • Taskmanager (xfce4-taskmanager oder anderen) starten.

  • Mediaplayer z.b. den VLC öffnen mit der Sprachdatei die transkribiert werden soll.

Buaha so viel Zeug 😛 - aber Du kriegst da hin das Fensterchen schön nebeneinander liegen.

1. Im Taskmanager den Chromium auf oberster Ebene anwählen. Ggf diese Fadenkreuzsucher verwenden und damit auf die Titelzeile vom Chromium Fenster (mit dem Tabs drin) zeigen. Auf diesen Chromiumprocess nun rechts klicken und 'Anhalten' wählen

2. In Chromium einen Klick auf das Mikrophon Toolbox-Fensterchen. ->Wenn Du bis jetzt alles richtig gemacht hast und Chromium angehalten ist sollte bei dem Klick erstmal scheinbar nix passieren.

3. Im Taskmanager auf Chromium Rechtsklicken und 'Fortsetzen' wählen. → Jetzt sollte der Klick von vorhin Wirkung zeigen also Chromium zieht sich da Clickereignis aus der Fensternachrichtenschlange und verarbeite es. Das Mikrophon der Spracheingabe schaltet auf aktiv. → In Lautstärkeregler [Aufnahme] sollte jetzt Chromium als Quelle zu sehen sein

4. In Lautstärkeregler [Aufnahme] kannst Du jetzt umschalten - ohne das die Spracheingabe stoppt

5. Jetzt schnell(Bevor sich die Eingabe wegen 10 Sekunden Stille abschaltet) noch im Mediaplayer mit der Sprachdatei auf Play drücken. = > Und jetzt transkribiert er hoffentlich was da zuhören ist. 😛

Kannst auch jetzt in das docs.google Fenster klicken und da jetzt während das Spracheingabe immer mal nebenher schon mit Enter einen 'taktischen' Zeilenumbruch einfügen.

Und hier die Kommandozeilenversion

1- die PID von chromium ermitteln

1
ps -C chromium|head -n2
    PID TTY          TIME CMD
2504201 ?        00:40:21 chromium

2. Den Code unten anpassen und zweimal die '2504201' mit der PID die bei Euch steht ersetzen

1
kill -STOP 2504201 && sleep 5 &&echo ... und Weitergehts.&& kill -cont 2504201

Nach dem Starten

  • In Chromium einen Klick auf das Mikrophon Fensterchen

  • ... und danach auf die Lautstärkeregler oder woanders außerhalb klicken!

→ nach 5 Sekunden wird Chromium fortgesetzt. 3. Jetzt könnt ihr in 'Lautstärkeregler/Aufnahme' die Aufnahmequelle umstellen und 4. Im Mediaplayer mit der Sprachdatei auf Play drücken. Auch hier nicht zu viel Zeit lassen damit die Spracheingabe nicht wegen 10 Sekunden Stille abschaltet

Rückblick:

Es gilt noch genau zu Untersuchen Warum genau das funktioniert. Geht die Fensternachricht focusout verloren? Eher nicht. Anstehende Fensternachrichten(z.b Click, Mausbewegt, FocusOut... ) stauen sich in der Fensternachrichtenschlange von Chromium an, da wenn dieser angehalten ist auch die Fensternachrichtenbehandlungroutine schläft. Wird er fortgesetzt kommen die anstehenden Fensternachrichten sehr schnell rein (in die Fensternachrichtenbehandlungroutine). Ich vermute nach dem Click Ereignisse auf den Mikrofonknopf gibt es eine kurze Zeitspanne, in der ein focusout Ereignis ungesehen und ungehändelt durchrauschen kann. Erst wenn die Initialisierung der Spracheingabe abgeschlossen ist (Knopf wird rot) wird auch ein focusout-Handler installiert, welcher dem Auftretten dieses Ereignisse die Spracheingabe abbricht.

Mal sehen vielleicht kann man das auch mit einem Userscript (Trampermonkey) auf Javascriptebene fixen. UPDATE: Nun der Zauber funktioniert mit der webkit SpeechRecognition API.

1
  var recognition = new webkitSpeechRecognition();

Hier wird das genauer erklärt https://developers.google.com/web/updates/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API Das Beispiel eignet sich gut, um sich das ganze mal im Javascript Debugger anzuschauen. Vor allem das Problem mit dem Stoppen der Erkennung beim Verlassen des Fensters oder wenn ich die Eingabequellen (in dem kleinen Icon in der Adressleiste) von "Mikrophon" auf "Standard" ändere.