Wiedergabe von Lokaler Musiksammlung

Hier wird über Skills, welche es bereits gibt, diskutiert.
Benutzeravatar

migeppert
Beiträge: 4
Registriert: Di 27. Dez 2022, 23:16

Mi 28. Dez 2022, 13:02

Ui, das ging ja schnell!

Ich glaube, ich erkläre das mal etwas genauer.
Nehmen wir an, meine externe Adresse lautet migeppert.dyndns.egal, der Endpoint ist in developer.amazon.com eingestellt auf https://migeppert.dyndns.egal/echo/radio.
Wenn ich extern (via Handynetz) auf https://migeppert.dyndns.egal/echo/radio zugreife, bekomme ich "Not Authorized" und ich sehe den Zugriff im NGINX Log.
Die Musik liegt auf 192.168.x.y/music, worauf https://migeppert.dyndns.egal/music umgeleitet wird.
Im LAN sehe ich die MP3s, von extern 404 (wie es ja auch sein soll).

Wenn ich jetzt "Alexa, starte m. c. p" sage (wo ich den Namen wohl her hab?), kommt am Echo Dot die oben erwähnte Fehlermeldung und ich sehe keinen Zugriff im NGINX Log.
Wenn ich's zum Spaß in der Alexa-App ausprobiere (gerade getan), bekomme ich einen Hinweistext:
Protocol Violation
Request Identifier: amzn1.geht-euch-nix-an...
The application response did not conform to the specification. Please ensure that you are using the latest client library and that your responses comply with the Application Service Interface.

Aha! Was????

Nochwas: separates Alexa-Radio Log gibt es nicht, oder? Ich sehe aber Einträge im Syslog (die 401 meiner Handy-Tests)

Ich weiß ja nicht, wie viele "neu" zu dem Skill kommen, aber ich würde die Beschreibung der Konfig-Files etwas "verbessern". Ich hab's erst richtig verstanden, was wo eingetragen werden muss, nachdem ich dieses Forum gefunden habe :-)

Liebe Grüße - und vielen Dank!
Migeppert
0 x
Benutzeravatar

Themenstarter
waringer
Beiträge: 46
Registriert: Sa 3. Feb 2018, 08:20
Vorhandene Echos: 2
Vorhandene Echo Dots: 4
Vorhandene Echo Shows: 1

Mi 28. Dez 2022, 13:42

Ok, jetzt sehe ich etwas klarer :)

Da der Zugriff von Amazon nicht im NGINX Log auftaucht gibt es 2 Möglichkeiten....
a) Der Endpoint ist nicht richtig definiert
b) Amazon hat den Namen "m. c. p." (Ja Tron lässt grüßen *g*) nicht richtig deinem Skill zugeordnet.

Ich würde über die Amazon Developer Console (https://developer.amazon.com/alexa/console/ask/) die Test Aktion starten und da dann mittels Texteingabe "starte <skill aktivierungswort>" den Skill aufrufen und schauen was kommt.

Der Skill selber hat im Linux init kein eigenes Log bekommen und loggt nach Syslog, stimmt. Aber da solltest du die Zugriffe sehen.
0 x
Benutzeravatar

migeppert
Beiträge: 4
Registriert: Di 27. Dez 2022, 23:16

Mi 28. Dez 2022, 13:48

Kleiner Nachtrag:

Ich hab keine externe IPv4-Adresse - könnte da das Problem liegen?
Aktuell komme ich nicht mehr auf die DynDns-Seite, aber ich weiß, dass dort eine IPv4 eingetragen war.
Möglicherweise versucht Amazon, mich über IPv4 zu erreichen!?

Gruß
Migeppert
0 x
Benutzeravatar

Themenstarter
waringer
Beiträge: 46
Registriert: Sa 3. Feb 2018, 08:20
Vorhandene Echos: 2
Vorhandene Echo Dots: 4
Vorhandene Echo Shows: 1

Mi 28. Dez 2022, 13:53

Meine Server haben alle IPv4 und IPv6 aber was ich sehe greift Amazon auf die IPv4 zu. Was aber nicht heist das sie nicht IPv6 nehmen wenn kein IPv4 vorhanden ist, ich weis es einfach nicht, sry.

Aber Evt. kannst du dir bei Orcale eine der Kostenlosen VM's mit einem Linux holen, die haben IPv4.
Zuletzt geändert von waringer am Mi 28. Dez 2022, 14:00, insgesamt 1-mal geändert.
0 x
Benutzeravatar

migeppert
Beiträge: 4
Registriert: Di 27. Dez 2022, 23:16

Mi 28. Dez 2022, 14:07

Test auf https://developer.amazon.com/alexa/console/ask hab ich gemacht.

Ergebnis: "Der angeforderte Skill hat keine gültige Antwort übermittelt"

Inzwischen geht die DynDns-Seite wieder und ich konnte die IPv4 löschen.
Mal kucken, wann das auf Amazon "bekannt" ist :-)

Hm... Externes Ping-Tool gefunden, welches meldet, dass keine "valid, public IPv4 address" aufgelöst werden kann. Ist ja okay so.
Aber wie sag ich jetzt Amazon, dass sie mich nur via IPv6 anrufen sollen?

Muss ich mal noch ein wenig rumsuchen - aber mal vielen Dank für die Infos!

Wird Alexa-Radio eigentlich noch "weiterentwickelt" oder ist es gut, so wie es ist?

Die Idee mit der VM hatte ich auch schon, mal schauen, würde mir das Leben stellenweise leichter machen.

Gruß und nen guten Rutsch!
Migeppert
0 x
Benutzeravatar

Themenstarter
waringer
Beiträge: 46
Registriert: Sa 3. Feb 2018, 08:20
Vorhandene Echos: 2
Vorhandene Echo Dots: 4
Vorhandene Echo Shows: 1

Mi 28. Dez 2022, 14:23

Sobald der Name keinen A Eintrag (IPv4) mehr hat und nur noch einen AAAA (IPv6) sollten die Dienste das eigentlich erkennen und die IPv6 nutzen.

Laut dem Amazon Forum (https://amazon.developer.forums.answerh ... orted.html) kann Alexa aber nur IPv4 (Stand Dezember 2021) :(

Der Skill wird von mir nach bedarf weiterentwickelt, aktuell ist er aber mehr oder minder Fertig und ich arbeite nicht aktiv an ihm ;)
0 x
Benutzeravatar

schirminger
Beiträge: 5
Registriert: Sa 25. Mär 2023, 14:48

Sa 25. Mär 2023, 15:14

Servus Waringer,

ich habe es tatsächlich nach ein paar Jahren geschafft, dieses Thema auf meiner to-do Liste anzugehen.
Es hat etwas gedauert, bis ich alles soweit aufgesetzt bekommen habe, aber aktuell laufen Nginx und MariaDB
problemlos im Docker-Container und das radio in einer VM.

Vielen Dank für Deine Arbeit! Ich bin hier wirklich sehr begeistert.


Bei meinen Tests bin ich bisher über folgende "Probleme" gestolpert.

Der Interpret wird nicht immer erkannt:
z.B.:
"Spiele Pornophonique"
- wird je nach Lust und Laune als "pornofonik", "Pono von IQ" oder "paul van dyk" erkannt.

Code: Alles auswählen

| AT_id | AT_Name               |
+-------+-----------------------+
|     8 | pornophonique         |

| AM_id | AM_Name                 | AM_Index |
+-------+-------------------------+----------+
|     5 | Brave New World         |     2020 |



Für Kinder-Hörspiele wie z.B. Bibi und Tina klappt eine "einfache Auswahl" ebenfalls nicht.
z.B.:
"Spiele bibi und tina folge 1", "Spiele bibi und tina folge 1 das Fohlen"

Code: Alles auswählen

| AT_id | AT_Name               |
+-------+-----------------------+
|     7 | Bibi und Tina         |

| AM_id | AM_Name                 | AM_Index |
+-------+-------------------------+----------+
|     4 | Folge 1: Das Fohlen     |        0 |


Hättest Du eine Idee, ob man das ggf. über eine Anpassung der DB-Abfrage lösen könnte?


Vielen Dank und beste Grüße
Benedikt
0 x
Benutzeravatar

schirminger
Beiträge: 5
Registriert: Sa 25. Mär 2023, 14:48

So 26. Mär 2023, 12:14

Hallo nochmal,

das Thema hat mich jetzt doch etwas umgetrieben und ich bin über folgende Ansätze gestolpert, die zumindest Problem 1 Lösen könnten:


BUILT-IN Function: SOUNDEX():
nur für Englisch.

Code: Alles auswählen

MariaDB [mcp]> SELECT * FROM ArtisT WHERE SOUNDEX(AT_Name) = SOUNDEX('pronofonik');
+-------+---------------+
| AT_id | AT_Name       |
+-------+---------------+
|     8 | pornophonique |
+-------+---------------+
1 row in set (0.001 sec)


Levenshtein distance in mySQL:
hier gefunden => https://lucidar.me/en/web-dev/levenshte ... -in-mysql/

Code: Alles auswählen

MariaDB [mcp]> SELECT * FROM ArtisT WHERE levenshtein('pronofonik', `AT_Name`) BETWEEN 0 AND 7;
+-------+---------------+
| AT_id | AT_Name       |
+-------+---------------+
|     8 | pornophonique |
+-------+---------------+
1 row in set (0.060 sec)


Ich habe noch einen recht interessanten Artikel zu dem Problem gefunden, die Implementierung habe ich mir aber noch nicht näher angesehen.
https://www.egimoto.com/a/db11b2894ec52474
1 x
Benutzeravatar

Themenstarter
waringer
Beiträge: 46
Registriert: Sa 3. Feb 2018, 08:20
Vorhandene Echos: 2
Vorhandene Echo Dots: 4
Vorhandene Echo Shows: 1

So 26. Mär 2023, 15:06

Hallo Benedikt,

eine Möglichkeit wäre noch in der Amazon Developer Console unter "Slot Types" für den Parameter "SEARCHPARAM" die Problematischen Namen einzutragen so das der Algorithmus die besser erkennen kann.
Ansonsten fällt mir nur noch ein eine Alias Liste in der DB zu pflegen, aber das sollte wohl die letzte Möglichkeit sein.

Die SOUNDEX Lösung habe ich in anderen fällen auch schon verwendet und die Funktioniert meistens sehr gut :)

Viele Grüße
Waringer
0 x
Benutzeravatar

schirminger
Beiträge: 5
Registriert: Sa 25. Mär 2023, 14:48

So 2. Apr 2023, 16:26

Hallo Waringer,

Danke für die Rückmeldung, das muss ich mir bei Gelegenheit noch anschauen, ich habe erst mal an den zweiten Problem gearbeitet.
Um das zu Lösen habe ich mir einen neuen Intent gebaut der es erlaubt Album/Titel und Interpret anzugeben.

Added StartPlayAlbumOrTitle

Code: Alles auswählen

                    "samples": [
                        "spiele {AlbumOrTitle} von {ArtistName}",
                        "spiel {AlbumOrTitle} von {ArtistName}"
                    ]
Gruß
Benedikt
0 x
Antworten

Zurück zu „Fähigkeiten (Skills) zum downloaden“

  • Information