Audioaufzeichnung in Telegram Kanal senden

Hilfe & Support rund im BosMon. Posting ist ohne Anmeldung erlaubt
florii
Beiträge: 22
Registriert: 4. Aug 2015, 13:47

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von florii »

...ich bekomme hier auch komischerweise einen Fehler.

Wenn ich meine Batch Datei manuell ausführe funktioniert es, auch mit der Sprachnachricht in Telegram..

Sobald es aber von Bosmon gestartet wird, wird zwar die Datei "record.wav" angelegt mehr nicht. Ich sehe zwar, dass die CMD etwas abarbeitet...
Bosmon hat in C:\Program Files (x86)\sox-14-4-2 Vollzugriff, sonst würde die Datei record.wav nicht angelegt werden.

Mein Ereignis:
FMS.png
FMS.png (46.23 KiB) 6878 mal betrachtet
Batch:

Code: Alles auswählen

timeout 1
cd C:\Program Files (x86)\sox-14-4-2
sox.exe record.wav recordcut.wav silence 1 0.1 3%% -1 3.0 3%%
forfiles /p "C:\Program Files (x86)\sox-14-4-2" /s /m recordcut.wav /c "cmd /c c:\lame\lame.exe -V2 recordcut.wav record.mp3"
curl.exe -s -X POST "https://api.telegram.org/botXXXXX/sendVoice" -F chat_id=XXXXX -F voice="@\Program Files (x86)\sox-14-4-2\record.mp3"
del record.wav
del record.mp3
del recordcut.wav
Jemand eine Idee?

Danke!
FFler24
Beiträge: 381
Registriert: 19. Jun 2017, 14:32

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von FFler24 »

Hallo,
curl.exe -s -X POST "https://api.telegram.org/botXXXXX/sendVoice" -F chat_id=XXXXX -F voice="@\Program Files (x86)\sox-14-4-2\record.mp3"
Hast du hier mal versucht den absoluten Pfad anzugeben?

"@C:\Program Files (x86)\sox-14-4-2\record.mp3"

Und statt sendVoice mal sendAudio versuchen. ;)

Bosmon hat in C:\Program Files (x86)\sox-14-4-2 Vollzugriff, sonst würde die Datei record.wav nicht angelegt werden.
Jein, bei Ausführen des Batchfiles kommt es auf den Kontext an, in dem das Skript ausgeführt wird. Das ist von den Dateizugriffsberechtigungen im ersten Moment mal isoliert zu betrachten.
Soweit ich mich erinnern kann, kommst du beim kaskadierten Ausführen von Anwendungen nicht aus dem BosMon-Ordner raus, das heisst in der Batch angeführte Anwendungen die außerhalb des BosMon-Ordners liegen können nicht gestartet werden aus eine CMD-Instanz, die von BosMon-geöffnet wurde.

cd C:\Program Files (x86)\sox-14-4-2
Da nützt auch der cd nichts. Hier dürfte dein Problem liegen.

Die sox.exe, curl.exe und lame.exe am besten in den BosMon-Ordner reinkopieren bzw dort einen eigenen Unterordner erstellen. In diesen kannst du dann mit cd wechseln im Skript und deine Anwendungen beliebig starten und ausführen.

Dazu kleiner Tipp: Bei Leerzeichen im Pfad den Pfad beim cd immer mit "" einfassen.



Grüße
FFler
bfranz
Beiträge: 8
Registriert: 5. Aug 2020, 11:22

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von bfranz »

Hallo,

ich habe mich auch dran gewagt die aufgenommenen Audiodateien automatisch mit Telegram zu versenden. Ich habe die Batch-Datei erstellt und die Pfade angepasst. Ein Teil funktioniert auch: Nachdem die Batch-Datei gestartet wurde öffnet sich die Eingabeaufforderung arbeitet alles ab und schließt sich wieder. Jedoch bekomme ich keine Nachricht auf Telegram mit der Audiodatei.

Könnt Ihr mir helfen was ich falsch mache?
bosmoneinstellung.jpg
bosmoneinstellung.jpg (64.81 KiB) 6530 mal betrachtet
batch.jpg
batch.jpg (91.94 KiB) 6530 mal betrachtet
Danke euch schon mal im Voraus!
FFler24
Beiträge: 381
Registriert: 19. Jun 2017, 14:32

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von FFler24 »

Hallo Franz,

wo liegen denn bei dir die sox.exe und die curl.exe?

Außerdem stimmt Zeile 2 deiner Batch nicht:
"cd" C:\Users\franz\Music\Alarmierungen

Code: Alles auswählen

cd "C:\Users\franz\Music\Alarmierungen\"

Zudem würde ich sox direkt aufrufen. Statt
sox record.wav ...

Code: Alles auswählen

sox.exe record.wav ...
Dabei achten, dass man sich bei Aufruf im richtigen Verzeichnis befindet, in dem auch die sox.exe liegt. Alternativ absoluten Pfad zur sox.exe angeben.

Noch ein Tipp: Dateipfade, welche ein Leerzeichen enthalten (bei der der Dateipfad der lame.exe), immer in "" setzen. Also bspw. "C:\Ich bin ein\Pfad mit Leerzeichen\"

Grüße
FFler
bfranz
Beiträge: 8
Registriert: 5. Aug 2020, 11:22

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von bfranz »

Danke für deine schnelle Antwort!

Habe das ganze jetzt mal so angepasst und die absoluten Pfade zur Sicherheit eingetragen. sox.exe liegt direkt im BosMon-Ordner und curl.exe mit dem Hauptordner auch im BosMon-Ordner.

Code: Alles auswählen

timeout 1
cd "C:\Users\franz\Music\Alarmierungen\"
"C:\Program Files (x86)\BosMon\sox.exe" record.wav recordcut.wav silence 1 0.1 3%% -1 3.0 3%%
forfiles /p "C:\Users\franz\Music\Alarmierungen" /s /m recordcut.wav /c "cmd /c "C:\Program Files (x86)\BosMon\lame\lame.exe" -V2 recordcut.wav record.mp3"
"C:\Program Files (x86)\BosMon\curl-7.71.1-win32-mingw\bin\curl.exe" -s -k POST "https://api.telegram.org/<apibotcode>/sendaudio" -F chat_id=<chatid> -F audio="@C:\users\franz\music\alarmierungen\record.mp3"
del c:\Users\franz\music\alarmierungen\record.wav
del c:\Users\franz\music\alarmierungen\recordcut.wav
Gruß Basti
FFler24
Beiträge: 381
Registriert: 19. Jun 2017, 14:32

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von FFler24 »

Hallo Basti,

Code: Alles auswählen


timeout 1
cd "C:\Users\franz\Music\Alarmierungen\"
pause
"C:\Program Files (x86)\BosMon\sox.exe" record.wav record.mp3 silence -l 1 00:00:01.0 -90d -1 00:00:00.1 -90d
pause
"C:\Program Files (x86)\BosMon\curl-7.71.1-win32-mingw\bin\curl.exe" -s -k POST "https://api.telegram.org/<apibotcode>/sendaudio" -F chat_id=<chatid> -F audio="@C:\users\franz\music\alarmierungen\record.mp3"
pause
del "C:\Users\franz\music\alarmierungen\record.wav"
del "C:\Users\franz\music\alarmierungen\record.mp3"

So, dann mittels Testen-Button im BosMon-Ereignis auslösen, Squelch vom Scanner aufdrehen und mal die Batch abrattern lassen. Jedes mal bei Pause stoppt die Batch und wartet auf eine Aktion, (bspw. Enter drücken) und dann startet die nächste Zeile. So kannst du herausfinden, an welcher Stelle dein Problem bzw. Probleme noch liegen.

Hab dir die Batch mal bisschen entmüllt und angepasst. Bedeutet weniger potentielle Fehlerquellen.

Bei der sox-Kommandozeile musst du ggf noch den Pegel für stille rausfinden. Einfach die -90d schrittweise nach oben anpassen, bspw. -80d, dann -70d usw., so lange bis die stille rausgeschnitten wird. Beim Scanner muss man das Herantasten nutzen, da dort immer, wenn auch nicht hörbar, ein Pegel anliegt (statisches Brummen etc.)

Wenn alles klappt einfach die "pause" jeweils entfernen.

Grüße
FFler
bfranz
Beiträge: 8
Registriert: 5. Aug 2020, 11:22

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von bfranz »

Danke für deine Mithilfe. Allerdings schmeißt er mir im sox.exe Teil 2 Fehler. Habe sox.exe nochmal neu installiert aber das hat auch nichts gebracht.

An was könnte das liegen?

Schönen Abend noch!
Dateianhänge
Anmerkung 2020-08-05 223203.jpg
Anmerkung 2020-08-05 223203.jpg (81.57 KiB) 6508 mal betrachtet
FFler24
Beiträge: 381
Registriert: 19. Jun 2017, 14:32

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von FFler24 »

Hallo,
An was könnte das liegen?
Der Aufruf von sox selbst funktioniert.

Nur sox sagt dir, dass in unter C:\Users\franz\Music\Alarmierungen\ keine record.wav zu finden ist.

Daher bitte prüfen ob auch in genau diesem Verzeichnis eine record.wav liegt. ;)

Wenn nein, dann nochmal den Pfad für die Aufzeichnung im BosMon-Ereignis prüfen.

PS: Bitte auch mal die Batch aus meinem letzten Post unverändert testen. Bei sox für die wav keinen absoluten Pfad angeben. Nicht notwendig, da wir ja zuvor schon mit cd in das richtige Verzeichnis gehüpft sind, in dem die record.wav liegt. :)

Den absoluten Pfad müssen wir nur beim Aufruf einer Datei oder Anwendung verwenden, welche nicht in dem aktuellen Verzeichnis liegt, in dem wir gerade sind bzw. oberhalb dieses Pfades. Liegt die Datei unterhalb reichen relative Pfadangeben oder eben wenn im aktuellen Verzeichnis selbst muss gar kein Pfad angegeben werden.

Grüße
FFler
bfranz
Beiträge: 8
Registriert: 5. Aug 2020, 11:22

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von bfranz »

Guten Morgen FFler,

hatte die Datei in dem Ordner record.wav benannt wodurch er dann natürlich nur record.wav.wav gefunden hatte. Das ganze funktioniert jetzt. Er hat mir dann den Fehler gebracht, dass er die libmp3lame nicht findet. Nach kurzem googeln konnte ich abhilfe finden. Die Datei in den Sox-Ordner und es hat funktioniert.

Dann hatte ich nur noch das Problem das er beim Telegram-Bot den Fehler 404 gebracht hat. Hier konnte ich Abhilfe schaffen indem ich das Wort bot vor den botToken gesetzt habe, und prompt habe ich auch eine Nachricht erhalten.
Jetzt gehts ans einstellen der Stille. :)

Vielen Dank für die schnelle und unkomplizierte Hilfe!

Gruß Bastian
FFler24
Beiträge: 381
Registriert: 19. Jun 2017, 14:32

Re: Audioaufzeichnung in Telegram Kanal senden

Beitrag von FFler24 »

Hallo Bastian,

super. Vielen Dank für die Rückmeldung.

Freut mich, dass wir dir helfen konnten und nun alles läuft. :)

Grüße
FFler
Antworten