Start Magazin Tipp: Google Sprach-Suche mit Amazon Alexa und Echo Dot benutzen

Tipp: Google Sprach-Suche mit Amazon Alexa und Echo Dot benutzen

10976
21
Teilen

Amazon Echo bzw. Alexa verwendet Bing, um Suchanfragen zu bearbeiten. Mit Wissensfragen bzw. Trivia Facts kommt Alexa im Augenblick aber leider noch nicht so gut zurecht. Normalerweise würde ich erwarten, dass sie, wenn sie etwas nicht weiß, einfach aus Wikipedia o.ä. zitiert. So macht das Google ja schon ewig. Wir zeigen dir in diesem Artikel, wie du Alexa beibringen kannst, Google zu fragen.


Auf GitHub hat sich tartanguru die Mühe gemacht und ein Projekt erstellt, mit dem es möglich ist, die Google Suche für Amazon Echo nutzbar zu machen. Wir zeigen dir hier nun Step by Step, wie du dafür vorgehen musst:

GitHub & Amazon Web Services

Als Erstes lädst du dir das Projekt alexa-google-search von GitHub über den Button „clone or download“ als Zip-Archiv herunter und entpackst es auf deinem PC. Anschließend gehst du auf die Webseite Amazon Web Services und erstellst dir ein neues AWS-Konto. Wundere dich nicht, dass du hier deine Kreditkarte hinterlegen musst. Du registrierst dich nur für den Basic Support Plan und dieser ist für dich vollkommen kostenlos. Es muss hier allerdings eine gültige Zahlungsinformation hinterlegt sein, falls du einen der anderen Support Plans (Developer, Business, Enterprise) verwenden möchtest.

Hast du die Registrierung erfolgreich abgeschlossen meldest du dich in der Konsole an und gibst oben in der Suche „lambda“ ein.

Als Suchbegriff gibst du lambda bei Amazon Web Services ein.

Auf der darauf folgenden Seite, der Lambda Management Console, klickst du auf „Get started now“ und wählst dort links im Menü „Configure trigger“ aus.

Die Lambda Management Console.

Um den Alexa-Dienst im nächsten Schritt auswählen zu können, musst du allerdings erst noch deinen Standort bzw. deine Region ändern. Dazu klickst du rechts oben auf das DropDown-Menü in der Ecke und wählst hier als Region EU (Irland) aus.

Wechsle die Region in EU (Irland).

Anschließend wählst du, indem du (neben dem Lambda-Symbol) auf das Rechteck mit den abgerundeten Ecken anklickst, den „Alexa Skills Kit“ aus und klickst weiter auf den Button Next.

Wähle das Alexa Skills Kit aus.

Im nächsten Schritt vergibst du einen Namen für diese Funktion. Wir haben sie GoogleSearch genannt.

Gib der Funktion einen Namen.

Unter dem Punkt „Lambda function code“ ist es nun auch soweit die aus GitHub heruntergeladene Zip-Datei zu verwenden. Dazu wählst du in der Combobox den Punkt „Upload a .ZIP file“ aus.

Lade die Zip-Datei hoch.

Darunter, unter „Function package“, klickst du auf den Button Upload. Hier wählst du allerdings nicht die Zip-Datei aus, die wir heruntergeladen haben. Sondern du verwendest die Archive.zip, die du im Ordner „alexa-google-search-master/src/ findest.

Lade die Archive.zip hoch.

Weiter unten wählst du jetzt noch in der Combobox „Role“ die Option „Create a new role from template(s)“ aus und gibst den Namen „lambda_basic_execution“ ein.

Erstelle eine neue Rolle und gebe ihr den Namen lambda_basic_execution.

Unter „Advances Settings“ ist es nun noch wichtig den Timeout auf 10 Sekunden einzustellen, sonst wird die Verwendung der Google-Suche über Alexa nicht funktionieren.

Setze den Timeout auf 10 Sekunden.

Weiter geht es mit einem Klick auf Next und auf der nächsten Seite auf „Create function“.

Erzeuge die Funktion

Nach ca. 10 Sekunden wurde die Funktion erfolgreich angelegt. Nun ist es wichtig dir den Code, den du rechts oben in der Ecke findest, zu notieren bzw. ihn beispielsweise in Google Keep zwischenzuspeichern, da du ihn später benötigst.

Die Funktion wurde erfolgreich angelegt. Kopiere dir die Phrase rechts oben in der Ecke.

Amazon Developer

Als nächsten Schritt registrierst du dich auf der Seite Amazon Developer, meldest dich an und klickst oben im Tabreiter auf Alexa und dort unter „Alexa Skills Kit“ auf „Get started“.

Klicke im Tabreiter auf Alexa.

Im nächsten Fenster klickst du rechts oben auf den Button „Add a New Skill“ und stellst dann die Sprache auf Deutsch um. Als Name vergibst du hier „GoogleSearch“ und als „Invocation Name“ ebenfalls „google“. Allerdings muss der Name bei „Invocation Name“ kleingeschrieben sein. Bei der Option Audio Player muss der Radio-Button „No“ angeklickt sein. Anschließend klickst du auf Next.

Setze die Sprache und vergebe einen Namen.

Im nächsten Fenster angekommen kopierst du nun den nachfolgenden Code (diesen findest du auch auf der GitHub-Seite) und fügst ihn unter „Intent Schema“ ein.

{
"intents": [
{
"intent": "SearchIntent",
"slots": [
{
"name": "search",
"type": "SEARCH"
}
]

},
{
„intent“: „AMAZON.StopIntent“
}
]
}

Wir erzeugen einen neuen Intent-Filter.

Klicke jetzt auf den Button „Add Slot Type“ und vergib unter „Enter Type“ das Wort „SEARCH“. Dieses muss hier zwingend großgeschrieben sein. Unter „Enter values“ fügst du die folgenden beiden Zeilen ein (diese findest du ebenfalls auf der GitHub-Seite):

who is the queen
why is the sky blue

Weiter unten, unter dem Punkt „Sample Utterances“, fügst du nun nocheinmal folgende Zeile ein und klickst anschließend auf den Button Next.

SearchIntent {search}

Das Interaction Model wird jetzt noch eine Weile verarbeitet werden. Du kannst aber währenddessen an der Konfiguration weiter arbeiten. Unter dem nächsten Punkt „Configuration“ selektierst du „AWS Lambda ARN“, aktivierst darunter „Europe“ und gibst hier den Code ein, den du vorhin in Google Keep zwischengespeichert hast. Weiter geht es dann mittels Next zum nächsten Schritt.

Jetzt sind wir soweit unsere Funktion zu testen. Dazu musst du aber noch so lange warten, bis der Punkt „Interaction Model“ fertig abgearbeitet wurde. Ist dieser fertig klickst du auf den Button enable.

Weiter unten testet du deine Konfiguration, indem du z.B. eingibst, wer der Präsident der USA ist. War der Test erfolgreich klickst auf den Button Next.

Wer ist der Präsident der USA?

Im nächsten Fenster brauchst du keine Änderungen vorzunehmen und klickst hier auch wieder auf den Button Next. Diesen Schritt musst du dann noch einmal im Dialog mit „Save“ bestätigen. Nun klickst du unter „Privacy & Compliance“ noch überall „No“ an und akzeptierst die „Export Compliance“. Hast du das getan klickst du auf den Button „Save“.

Nun bist du auch schon im letzten Schritt angelangt. Gehe in deine Alexa-App, oder in das Alexa Portal, und klicke dort links im Menü auf Skills. Unter Skills lässt du dir deine eigenen Skills anzeigen, indem du rechts oben auf „Ihre Skills“ klickst. Hier kannst du nun einen Google Skill aktivieren.

Aktiviere deinen Google Search Skill.

Um nun deine Google-Suche zu verwenden sagst du einfach:

„Alexa: Frag Google“

und stellst danach deine Frage.

  • Raik Kaiser

    Bleibe an der Stelle „create function“ hängen. Da kommt immer als Fehlermeldung:

    „Role with name lambda_basic_execution already exists“
    Was mach ich falsch?

  • Hallo Raik,

    falls die Rolle „lambda_basic_execution“ bereits schon existiert, dann wähle in der Combobox darüber bitte „Use existing“ aus. Darunter kannst Du die Rolle dann auswählen.

    Falls es dann immer noch nicht funktioniert lösche die Funktion bitte noch einmal und versuche es erneut.

    Die Funktion kannst du wie folgt löschen:

    Klicke auf diesen Link:

    https://us-west-2.console.aws.amazon.com/lambda/home?region=us-west-2#/home

    und stelle Deine Region zuerst ganz rechts oben auf US (Ireland).

    Danach klickst Du auf Get Started und hier solltest Du die Option Functions sehen. Dort markierst Du Deine Funktion mittels des kleinen Kreises ganz links und über Actions oben drüber kannst Du sie wieder löschen.

    Beste Grüße

  • Udo Dehnert

    Hallo,
    leider eine Fehlermeldung bei Intent Schema in Zeile 10

    Parser erforderlich in line10
    …“search“}]
    ———————
    Expertin ,}‘,‘,‘, Gott ‚EOF‘

    Was läuft da falsch ?

  • Udo Dehnert

    Hallo,

    habe im Intent Schema in Zeile 10 eine Fehlermeldung.

    Parse erforderlich on linear 10

    Ich habe dort die Funktion reinkopiert, aber es läuft nicht

  • K79lle

    Woran könnte es liegen, dass der erstellte Skill bei mir nicht im Alexa Portal auftaucht?
    Obwohl ich alle Schritte durchgegangen bin, wird mir unter Developer auch der Status „Development“ angezeigt, obwohl die Entwicklung meiner Meinung nach ja bereits abgeschlossen sein sollte?!?
    Für Hilfe zur Problemlösung wäre ich sehr dankbar…

  • K79lle

    Ach ja: Sowohl bei AWS, als auch beu Developer habe ich die gleiche Mailadresse wie bei meinem Echo benutzt…

  • Der Status Development ist aber korrekt. Der wird bei mir auch angezeigt. Geh hier mal auf Edit. Dort sollten links im Menü überall grüne Häkchen sein. Außer bei Publishing Information. Dort ist das Häkchen bei mir grau.

    Funktioniert bei Dir der Test bei AWS?

  • Ich kann Dir leider auf Anhieb auch nicht sagen, wo da der Fehler ist. Kannst Du die Funktion bitte löschen und es noch einmal neu in der Developer Konsole versuchen?

  • K79lle

    Häkchen sind bei mir wie von Dir beschrieben und der Test bei AWS verläuft auch erfolgreich…

  • sesamsamen

    Hatte ich auch. Probier den hier, hat bei mir dann funktioniert.

    {
    „intents“: [
    {
    „intent“: „SearchIntent“,
    „slots“: [
    {
    „name“: „search“,
    „type“: „SEARCH“
    }
    ]

    },
    {
    „intent“: „AMAZON.StopIntent“
    }
    ]
    }{
    „intents“: [
    {
    „intent“: „SearchIntent“,
    „slots“: [
    {
    „name“: „search“,
    „type“: „SEARCH“
    }
    ]

    },
    {
    „intent“: „AMAZON.StopIntent“
    }
    ]
    }

  • sesamsamen

    Hat bis auf den Code für das Intent Schema super funktioniert. Intent Schema Code
    der bei mir funktioniert hat siehe unten. Kontext ist zwar leider wie beim echten
    Google Home nicht möglich, aber auch so ist Alexa nun um einiges schlauer. Vielen Dank für die tolle Anleitung !

  • Dieter de Mar

    Hallo!
    Habe eine Fehlermeldung bei Intent Schema in Zeile 17, wenn ich Deine Version eingebe. Gibt es noch eine andere Variante?

  • Karsten Bock

    Bei mir erscheint nach Eingabe von Enter Type : SEARCH
    ERROR SEARCH IST DOUBLE

  • Karsten Bock

    Text

    JSON
    Enter Utterance
    The remote endpoint could not be called, or the response it returned was invalid.

    Bekomme das beim Testen kurz vor Ende im zweiten Kasten angezeigt. HILFE BITTE

  • Karsten Bock

    Was muss bei Publishing Information eingetragen werden ?

    Skill Information

    Interaction Model
    Configuration
    Test
    Publishing Information
    Privacy & Compliance
    Global Fields
    These fields apply to all languages supported by the skill.

    Category
    The category that best describes your skill. This helps customers find skills like yours.

    Sub Category

    Testing Instructions
    Please detail any special instructions to test your skill. Include any account or hardware requirements. This information is used by the certification team and is not displayed to customers.

    Countries & Region:

    Select „In all countries…“ to make your skill available to users worldwide. Select „Selected countries and regions“ to limit the skill to the specified countries.
    Your skill needs to support the primary language for each of the specified countries to be accessible by users in those countries. E.g. customers in Germany can access your skill if it is available in German. Learn more

    Where would you like this skill to be available?

    In all countries and regions where Amazon distributes skills
    Selected countries and regions:

  • Karsten Bock

    Hallo, bitte um Hilfe ! Beim Test der Frage bleibt der zweite Antwort Kasten rot. Bekomme aber einen grünen Haken bei Test. Die vorletzte Position bleibt grau. Da sollen Fragen beantwortet werden. Leider finde ich in der Anleitung nichts. Nach Abschluss erscheint leider der Skill auch nicht in der App😐 verzweifelt.

  • Udo Breidung

    Habe das gleiche Problem, alle Schritte scheinen erfolgreich abgeschlossen, Skill taucht bei mir nicht im Alexa Portal auf. Gibt es Lösungen?

  • Udo Breidung

    Habe das gleiche Problem, bei mir funktioniert aber auch der Test nicht. Fehlermeldung: „errorMessage“: „RequestId: 3dc441a6-fd03-11e6-b644-958de581a600 Process exited before completing request“
    Was ist zu tun?

  • Jörg Ladwig

    Moin zusammen,
    ich bin fast durch…aber beim Punkt Configuration AWS Lambda ARN wird immer geschrieben das der Code falsch sei. Habe rumprobiert, hänge hier nun fest. Fehler :

    Error: Please make sure that „Alexa Skills Kit“ is selected for the event source type of arn:aws:lambda:eu-west-1:127312823408:function:GoogleSearch

    Weis jemand Rat ?

    VG von Jörg

  • Jörg Ladwig

    Moin zusammen,

    ich hänge nun beim ARN-Code fest.
    Fehler :

    Error: Please make sure that „Alexa Skills Kit“ is selected for the event source type of arn:aws:lambda:eu-west-1:127312823408:function:GoogleSearch

    Hbe den Code mehrfach kontrolliert, habe auch die Seite mit dem Code noch offen, ich kann keinen Fehler finden.
    Weis jemand Rad ?

    VG von Jörg https://uploads.disquscdn.com/images/71c0b8b8daa5c3cace27ffe54b927479231a985dd91efecd739a9810507bfcb7.jpg

  • Tobias Teichmann

    Die E-Mail-Adressen in der Developer-Console und im Alexa-Portal müssen identisch sein, damit der Skill für dein Gerät zur Verfügung gestellt wird.