NEWS
SayIt Audioausgabe am Klinkenstecker des Raspberry
-
Hallo,
ich konnte leider nichts konkretes finden.
Was muss ich tun, um dem SayIt Adapter einen Volumewert mitzugeben, sodass die Lautstärkeausgabe am Raspberry-Audioausgang gesteuert werden kann.
Installiert sind der OMX Player und mpg321.
Keine der hier im Forum gefundenen Scripts beeinflusst die Lautstärke. Einzig den Player konnte ich Global schon mal lauter stellen.
Versucht habe ich sowohl den OMX Player als auch den mpg321 jeweils mit und ohne Cache, in vielen Sprachausgabe Versionen.
Mit Blockly und auch direkt in Javascript.
Ausgabe wird laut und deutlich ausgegeben, aber eben LAUT
… ohne Möglichkeit etwas zu beeinflussen.
In den Objekten unter SayIt wird der von mir erzeugt Wert angezeigt!!! Also wohl auch richtig gescriptet.
Die erzeugten mp3s auch schon oft gelöscht und neu erzeugen lassen.
Verzweifelt .... Vielen Dank für Ideen ...
Andreas
-
Ich verstehe nicht 100% was du genau meinst und was du schon versucht hast.. Aber unter Objekten gibt es den Datenpunkt
sayit.0.tts.volume
Da kannst du doch die Lautstärke der generierten Ausgabe einstellen (Wert 0-100)?
Ansonsten hier noch ein Auszug von Github:
` > Cloud and Amazon Web Services Polly text formattingYou can format your text with (Speech Synthesis Markup Language)[http://docs.aws.amazon.com/polly/latest/dg/ssml.html].
Most useful features:
<break time="3s">- make a pause for x seconds (max 10 seconds).
<emphasis>big</emphasis> - make an emphasis on some word.
<prosody volume="+6dB" rate="90%">I am speaking this</prosody> - control speed and volume parameters.
<say-as interpret-as="digits">12345</say-as> - say every digit separately.</break> `
Gruß
-
Hallo und Danke für die Antwort,
aber leider nimmt der Adapter keine Lautstärkeparameter an!
In einem Test-Script habe ich alles probiert, was an Skripten so im WWW gefunden wurde.
on({id: "hm-rpc.0.LTK0051393.2.PRESS_SHORT"/*HM-PB-2-WM55-2 LTK0051393:2.PRESS_SHORT*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; var vol ="sayit.0.tts.volume"; var idSayIt = "sayit.0.tts.text"; setState (vol,10); setState (idSayIt, "Das ist ein Test"); //setState("sayit.0.tts.text", "de-DE_AP_Female;100;" + 'Das ist ein Test'); });
bzw. die auskommentierte Zeile
Alles kommt mit der gleichen Lautstärke.
Meine jetzigen Einstellungen des Adapters sind mpg321 mit AWS Polly Deutsch Marlene + Keys.
Der OMX Player hakt mir zu sehr …
Danke
-
Sorry, wenn ich den Post nochmal anstupse. Ich versuche es nochmal besser zu erklären …
Ich habe eine funktionierende Audioausgabe vom Adapter. Aber jegliche Eingabe von Lautstärkeparametern wird ignoriert.
Egal an welcher Stelle (Blockly, Javascript oder in den Objekten) ich es versuche.
Ich habe es auch noch folgendermaßen probiert: mit Cache, ohne Cache, direktes Upload eines Files in den Adapterordner, Ausgabe mit mp3.
Resultat immer das Gleiche ... alles wird gespielt aber sehr leise.
Ich habe mit Hilfe eines Forummitglieds schon folgendes erfolgreich machen können:
amixer set PCM -- 100% ... was dazu führte, dass der gesamte Raspi nun laut spielt :-), aber die Änderungen des Volumes sind nicht machbar.
Das bedeutet ja, dass ich die Lautstärke schon irgendwie beeinflussen kann. Leider nicht durch den Adapter :-(.
Die Ausgabe soll direkt am Klinkenstecker des Raspberry erfolgen, da der auf der Hausanlage hängt. Also kein Sonos, Bluetooth oder sonstiges, auf welche sich hautsächlich die Posts beziehen.
Was ich leider mangels Kenntnisse nicht weiss ist, ob ich neben der Standardinstallation des Jessie Images noch irgendwelche Player installieren muss.
Als Ausgabe bietet mir der Adapter unter System den omx und mpg321 an. Ich weiss aber nicht, ob das Standard ist und der Adapter noch einen Player dahinter erwartet.
Die Lautstärke der Ausgabe ist im Moment immer auf einem gleichen Niveau ... sehr sehr leise!
Auch spielt der omx Player die Files nicht vollständig ab, sondern je nach Text nur ca. 60-70% der Länge.
Der mpg321 spielt dagegen einwandfrei alles ab, auch mit den verschiedenen Stimmen ... inkl. der AWS registrierten Marlene.
Es wäre klasse, wenn ich das mit den Volumes noch umsetzen könnte, da ich verschiedene Ansagen in unterschiedlichen Lautstärken dringend benötige.
Kann es denn sein, dass ich noch etwas nachinstallierten muss, wenn ja unter root oder pi?
Oder gibt es vielleicht einen anderen Player den ich installieren könnte und dann mit dem Adapter verbinden kann.
Danke ... und ein erfolgreiches 2018
Andreas
-
Hallo Ast64,
konntest Du das Problem irgendwie lösen? Bei mir lässt sich die tts Lautstärke des Adapters auch nicht verstellen, klappt das überhaupt bei jemandem?
Die globale Lautstärke über den Alsamixer zu verändern funktioniert natürlich, auch die Änderung der mpg321 Lautstärke der jeweiligen mp3 (option -g)!
Meine Kenntnis war, dass der Adapter den Text über den eingestellten Service konvertiert und die generierte mp3 dann über den Player (bei mir mpg321) ausgibt. Daher
verstehe ich nicht, dass die Änderung der Lautstärke im Adapter keine Änderung bewirkt…
-
Funktioniert das nur bei mir nicht?
Ich hab jetzt auch mal über "system command" in den Einstellungen z.B. "mpg321 -g 50" versucht, das klappt auch! Ich möchte die Lautstärke aber per Script steuern, da ich unterschiedliche ausgeben möchte!
Laut Doku gibt %s ja den Dateinamen für system command! Gibt es auch einen Platzhalter für Volume (Wert aus tts.volume)? Dann könnte man das evtl. mit so einem workaround lösen!
Welcher Befehl wird denn eigentlich Standardmässig ausgeführt, wenn z.B. der mpg321 Player für Systemausgabe unter Linux definiert ist?
-
Ich habe das mal so gelöst.
Ich mache zunächst eine Ausgabe mit einem Sayit Adapter auf eine Browser Instanz
setState('sayit.1.tts.text',txt);
Dann nehme ich diese Ergebnis mit einer kleinen Verzögerung als Eingabe für
exec('omxplayer -o local http://' + iobroker_ip + ':8082/state/sayit.1.tts.mp3');
Weil ich gemerkt habe, dass der obige Befehl Instanzen von diesem omxplayer erzeugt, kill ich den Player nach einer weiteren Verzögerung.
setTimeout(exec("killall omxplayer.bin"),30000);
Die Lautstärke setze ich über das Raspi Operating System mit einem Kommando an den Vol Mixer.
exec("/usr/bin/amixer -c 0 set PCM 100%");
Wahrscheinlich nicht die eleganteste Lösung und ein ziemlicher Krampf.
Aber ich habe nichts Besseres gefunden.
Falls es was anderes gibt, dann bin ich interessiert.
-
Den omxplayer kannst du doch einfach weg lassen? Volume mit amixer setzen, dann sayit sprechen lassen und amixer wieder auf alte Lautstärke..
Gruß
-
Danke, beides gute Ansätze!
Da ich ungern immer die Master Lautstärke über amixer verändern möchte, ist der workaround über die Browser Instanz hilfreich!
Ich würde dann aber dem Player die Lautstärke zum Abspielen der erzeugten mp3 mitgeben (-g bei mpg321), somit sollten laufende Ausgaben davon unberührt bleiben!
Danke nochmal…
P.S. Wenn der Adapter mal gefixt würde, wäre das natürlich auch nicht schlecht 8-)