SEPIA-Framework / sepia-docs

Documentation and Wiki for SEPIA. Please post your questions and bug-reports here in the issues section! Thank you :-)
https://sepia-framework.github.io/
236 stars 16 forks source link

Client Stimme und Standort #224

Open tlrider99 opened 1 year ago

tlrider99 commented 1 year ago

Hallo Florian,

ich versuche die Sprachausgabe auf dem DIY Client in " Google Deutsch" zu ändern, das klappt leider nicht. Wenn ich es im Browser versuche funktioniert es. Die Einstellungen in der settings.js des Clients habe ich angepasst.

**DIY Client**

SepiaFW.settings = {
    headless: {
        device: {
            "host-name": "192.168.10.122",
            "deviceId": "o2",
            "de-voice": "Google Deutsch",
            "environment": "speaker",   //e.g.: default, speaker, smart_display
            "deviceLocalSiteData": {
                "location": "home",
                "type": "room",
                "name": "unassigned",
                "index": ""

**Browser** hier funktioniert es

{
    "headless": {
        "device": {
            "asrEngine": "native",
            "voiceEngine": "native",
            "host-name": "http://192.168.10.122",
            "deviceId": "b1",
            "de-voice": "Google Deutsch",
            "deviceLocalSiteData": {
                "location": "",
                "type": "",
                "name": "unassigned",
                "index": "",
                "updates": "off"

Auch klappt das mit der Frage nach dem Wetter nur im Browser nicht am DIY client. Am Client bekomme ich immer die Ansage, das die Standortdaten fehlen.

**DIY Client**

location: {
    "latitude": "48.xxxxxxx",
    "longitude": "9.xxxxxxxxxx"
},

**Browser** hier funktioniert es

"deviceGlobalLocation": {
        "latitude": "48.xxxxxxxxxx",
        "longitude": "9.xxxxxxx"
}

Ich habe schone versucht dies in die settings vom client zu kopieren, hat aber nicht geholfen. Danke! Dirk

fquirin commented 1 year ago

Hi Dirk,

bezüglich GPS, versuch mal diese Konfiguration:

{
    "headless": {
        "device": {
            ...
            "deviceLocalSiteData": {
                "location": "",
                "type": "",
                "name": "",
                "index": "",
                "updates": "off"
            },
            "deviceGlobalLocation": {
                "latitude": "52.51",
                "longitude": "13.37"
            }
        },
       "user": {
            ...
            "autoGPS": false
        },
        ...
    }
}

Es gibt ein zweites Feld namens "location", das ist eigentlich nur der Zwischenspeicher der live Koordinaten. Das am Besten leer lassen oder komplett entfernen.

Bezüglich der Stimme, welche Stimme hörst du aktuell? Man kann glaube ich auch über den Control-HUB die "voices" Liste abrufen. Ich meine die Google Stimmen sind im DIY nicht "installiert" (aktiviert). Ich habe es übrigens geschafft, auch die neuste Chrome/Chromium Version wieder zu "aktivieren" mit alten API Keys, habe aber noch nicht geprüft, ob es da mehr Stimmen gibt.

tlrider99 commented 1 year ago

ich habe es jetzt mit "deviceGlobalLocation" probiert und die "location" Sektion gelöscht. Trotzdem kommt ich kann deine Position nicht bestimmen. Sind die Nachkommastellen begrenzt, weil du in deinem Beispiel nur 2 angibst?

Als Stimme höre ich "de-DE espeak m"

fquirin commented 1 year ago

ich habe es jetzt mit "deviceGlobalLocation" probiert und die "location" Sektion gelöscht. Trotzdem kommt ich kann deine Position nicht bestimmen. Sind die Nachkommastellen begrenzt, weil du in deinem Beispiel nur 2 angibst?

Und "autoGPS": false (unten bei "user")? Ich bin nicht sicher was passiert, wenn das true ist, aber das Gerät die Koordinaten nicht bestimmen kann.

Sind die Nachkommastellen begrenzt, weil du in deinem Beispiel nur 2 angibst?

Ne, das sollte keine Rolle spielen. Das einzigen was passieren könnte, wäre dass der Geo-Coder die Koordinaten nicht findet, aber dann müsste auch ein anderen Fehler kommen glaube ich.

Als Stimme höre ich "de-DE espeak m"

Das ist dann wahrscheinlich der Fallback, weil die "native" Google Stimmen nicht unterstützt werden von der Browser Version :-/. Wenn du dich mit dem Remote Terminal im Control-HUB verbindest (CLEXI), kommt eventuell noch eine Fehlermeldung falls der Client versucht die Stimme zu laden aber fehlschlägt

tlrider99 commented 1 year ago

Hi Florian,

ja "autoGPS": false ist gesetzt. Trotzdem findet der DIY Client die Standortdaten nicht.

Wenn du dich mit dem Remote Terminal im Control-HUB verbindest (CLEXI), kommt eventuell noch eine Fehlermeldung falls der Client versucht die Stimme zu laden aber fehlschlägt

Leider kommt keine Fehlermeldung.

hier mal die client settings insgesamt, vielleicht gibt es ja ein ganz anderes Problem. Notepad++ zeigt die letzte Klammer als nicht geschlossen.

SepiaFW.settings = {
"headless": { "device": { "asrEngine": "native", "voiceEngine": "native", "host-name": "http://192.168.10.122", "deviceId": "o2", "de-voice": "Google Deutsch", "deviceLocalSiteData": { "location": "", "type": "", "name": "unassigned", "index": "", "updates": "off" }, "deviceGlobalLocation": { "latitude": "48.xxxxxxxx", "longitude": "9.xxxxxxx" } }, "playerVolume": 5.0, "microphoneSettings": { "gain": 1.0, "noiseSuppression": false, "autoGainControl": false, "echoCancellation": false, "resamplerQuality": 4, "tryNativeResampling": false }, "deviceSounds": { "micConfirm": "sounds/coin.mp3", "alarm": "sounds/alarm.mp3" }, "wakeWordNames": "Hey SEPIA", "wakeWordVersion": "1.4", "voiceEngine": "sepia", "voiceCustomServerURI": "", "en-voice": "", "de-voice": "", "asrEngine": "native", "asrServerURI": "http://localhost:20726/sepia/stt", "asrServerUser": "any", "asrServerToken": "test1234", "en-asrModel": "", "de-asrModel": "", "big-screen-mode": true, "virtualKeyboard": false, "clexiGpioInterface": { "buttons": [{ "id": "hw-mic-button", "pin": 17 }], "leds": [{ "id": "state-led-1", "pin": null, "state": "listening" }], "items": [{ "id": "led-array", "file": "rpi-respeaker-mic-hat-leds", "options": { "model": "2mic", "numOfLeds": 3 }, "modes": { "idle": [{"ledIndex": 1, "red": 0, "green": 0, "blue": 0}], "listening": [{"ledIndex": 1, "red": 150, "green": 0, "blue": 0}], "speaking": [{"ledIndex": 1, "red": 0, "green": 0, "blue": 150}], "awaitDialog": [{"ledIndex": 1, "red": 100, "green": 100, "blue": 0}], "loading": [{"ledIndex": 1, "red": 10, "green": 10, "blue": 10}], "wakeWordActive": [{"ledIndex": 2, "red": 10, "green": 0, "blue": 0}], "wakeWordInactive": [{"ledIndex": 2, "red": 0, "green": 0, "blue": 0}], "eventEffectsOn": [], "eventEffectsOff": [] } }] } }, "user": { "clexiSocketURI": "ws://localhost:8080", "clexiServerId": "clexi321", "clexiConnect": true, "app-language": "de", "useRemoteCmdl": true, "useGamepads": true, "useBluetoothBeacons": true, "useBluetoothBeaconsInAoModeOnly": false, "knownBluetoothBeaconAddresses": [], "useWakeWord": true, "autoloadWakeWord": true, "allowWakeWordDuringStream": true, "activeSkin": "2", "activeAvatar": "0", "proactiveNotes": false, "autoGPS": false, "embeddedPlayerSettings": { "canEmbedYouTube": false, "canEmbedSpotify": true, "canEmbedAppleMusic": false } }, "broadcast": { "state": true, "login": true, "clientError": true, "accountError": true, "speech": true, "wakeWord": true, "audioPlayer": true, "alarm": true, "info": false } } }

Grüße Dirk

fquirin commented 1 year ago

Hi Dirk,

sorry hat etwas länger gedauert diesmal, hatte Urlaub und habe dann noch eine kurze, kreative Pause eingelegt :-).

Ich sehe kein Problem in der settings.js. Hast du schon mal den remote debugging modus vom DIY Client ausprobiert? (bash setup.sh -> ENABLE remote debugging mode). Da könnte man zumindest mal prüfen, welche Einstellungen wirklich aktiv sind und manuelle Eingaben testen (auch für die TTS Stimmen).