Heim > Backend-Entwicklung > PHP-Tutorial > Sprachgesteuerte PHP -Apps mit API.ai

Sprachgesteuerte PHP -Apps mit API.ai

Joseph Gordon-Levitt
Freigeben: 2025-02-17 10:56:11
Original
421 Leute haben es durchsucht

Sprachgesteuerte PHP -Apps mit API.ai

In diesem Tutorial werden wir uns mit API.ai befassen, eine API, mit der wir Apps erstellen können, die die natürliche Sprache verstehen, ähnlich wie Siri. Es kann entweder Text oder Sprache als Eingabe akzeptieren, die es dann analysiert und eine JSON -Zeichenfolge zurückgibt, die durch den von uns geschriebenen Code interpretiert werden kann.

Alle Dateien, die wir in diesem Tutorial verwenden, sind in diesem Github -Repository verfügbar.

Sprachgesteuerte PHP -Apps mit API.ai

Key Takeaways

  • api.ai ermöglicht es Entwicklern, PHP -Anwendungen zu erstellen, die natürliche Spracheingaben, ähnlich wie SIRI, durch Verarbeitung von Text oder Sprache und Rückgabe umsetzbarer Daten im JSON -Format.
  • Schlüsselkonzepte in API.AI umfassen Agenten (Anwendungen), Entitäten (benutzerdefinierte Konzepte wie Währungen), Absichten (Aktionen, die auf Benutzerbefehlen), Kontexte (Kontext des Benutzerausdrucks), Aliase (Entitätsreferenzen im Code) und Domänen (Domänen (Domänen (Domänen) (Domänen) (Benutzerausdruck) (Benutzerausdruck) enthalten sind. Vordefinierte Wissenspakete).
  • Das Tutorial zeigt, dass er eine PHP -App erstellt, um die aktuelle Zeit an jedem Ort mit API.AI, der Geocoding -API von Google und der Timezone -API zu holen, um zu veranschaulichen, wie API -Daten in verwendbare Antworten integriert und konvertiert werden können.
  • API.AIs Domains-Funktionen, die noch in der Beta-Funktion sind, vereinfacht die Integration, indem integrierte Entitäten und Absichten bereitgestellt werden, die ein minimales Setup erfordern und die schnelle Erstellung von Anwendungen wie Videosuche auf YouTube ermöglichen.
  • Das Tutorial umfasst auch das Erstellen einer Währungswandler-PHP-App unter Verwendung von API.AI, wobei er zeigt, wie Benutzereingaben behandelt werden, Absichten und Entitäten definieren und in externe APIs wie CurrencyLayer für Echtzeitdaten integrieren.
  • .
  • api.ai unterstützt mehrere Plattformen und Sprachen und bietet Entwicklern Flexibilität, um Sprachanträge über Webumgebungen hinaus zu erstellen, einschließlich mobiler und Desktop-Anwendungen.

Konzepte

Bevor wir zum praktischen Teil übergehen, ist es wichtig, dass wir zunächst die folgenden Konzepte verstehen:

  • Agenten - Agenten sind Anwendungen. Wir erstellen einen Agenten als Mittel zur Gruppierung einzelner Entitäten und Absichten.

  • Entitäten - Entitäten sind benutzerdefinierte Konzepte, die wir in unsere Anwendung einbeziehen möchten. Sie bieten eine Möglichkeit, einem bestimmten Konzept eine Bedeutung zu geben, indem sie Beispiele hinzufügen. Eine Stichprobeneinheit wäre „Währung“. Wir definieren es, indem wir Synonyme wie "USD", "US -Dollar" oder nur "Dollar" hinzufügen. Jedes Synonym wird dann einem Referenzwert zugewiesen, der im Code verwendet werden kann. Es ist nur eine Liste von Wörtern, mit denen sich dieses Konzept beziehen kann. API.AI bietet bereits einige grundlegende Entitäten wie @sys.number, eine Entität, die sich auf eine beliebige Nummer bezieht, und @sys.email, die sich um eine Entität handelt, die sich auf eine E -Mail -Adresse bezieht. Wir können die integrierten Entitäten verwenden, indem wir @SYS als Präfix angeben.

  • Absichten - Absichten ermöglichen es uns zu definieren, welche Aktionen das Programm abhängig von dem, was ein Benutzer sagt, ausführen. Eine Stichprobenabsicht wäre "Währung". Anschließend listen wir alle möglichen Sätze oder Sätze auf, die der Benutzer sagen würde, wenn er die Währung konvertieren möchte. Zum Beispiel könnte ein Benutzer sagen: "Wie viel kostet @sys.number: number @currency: from currency in @currency: tocurrency?". In diesem Beispiel haben wir 2 Entitäten verwendet: @sys.number und @currency. Durch die Verwendung des Dickdarms nach der Entität können wir einen Alias ​​für diese Entität definieren. Dieser Alias ​​kann dann in unserem Code verwendet werden, um den Wert der Entität zu erhalten. Wir müssen dieselbe Entität einen anderen Alias ​​geben, damit wir sie in unserem Code getrennt behandeln können. Damit Menschen die oben genannte Absicht verstehen können, müssen wir nur die Wesenheiten durch die tatsächlichen Werte ersetzen. Ein Benutzer könnte also sagen: "Wie viel kostet 900 US -Dollar in japanischen Yen?" Für die Tocurrency @Currency.

  • Kontexte - Kontexte repräsentieren den aktuellen Kontext eines Benutzerausdrucks. Zum Beispiel könnte ein Benutzer sagen: "Wie viel kostet 55 US -Dollar im japanischen Yen?" API.AI verwendet in diesem Fall das, was zuvor vom Benutzer gesprochen wurde, „Wie viel ist 55 US -Dollar“ als Kontext für den zweiten Ausdruck.

  • Aliase - Aliase bieten eine Möglichkeit, sich auf eine bestimmte Entität in Ihrem Code zu beziehen, wie wir bereits in der Erklärung für die Absichten gesehen haben.

  • Domänen-Domänen sind vordefinierte Wissenspakete. Wir können sie als eine Sammlung integrierter Einheiten und Absichten in der Api.ai vorstellen. Mit anderen Worten, sie sind Tricks, die API.AI mit wenig bis gar keinem Setup oder Codierung durchführen kann. Ein Benutzer kann beispielsweise sagen: "Suchen Sie Videos von Pikachu auf YouTube." Und API.ai würde bereits wissen, wie man das analysiert, und gibt "Pikachu" als Suchbegriff und "YouTube" als Dienst zurück. Von dort aus können wir einfach die zurückgegebenen Daten verwenden, um zu YouTube zu navigieren und nach „Pikachu“ zu suchen. In JavaScript geht es nur darum, den Ort festzulegen.

    <span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
    Nach dem Login kopieren
Um Domänen für Ihren Agenten zu verwenden, wählen Sie Ihren Agenten aus der Konsole aus und klicken Sie dann oben auf das Menü Domains. Aktivieren Sie von dort aus den Domains Wissensbasis und Erfüllung. Beachten Sie, dass sich die Domänen derzeit in der Beta befinden, aber Sie können die API -Konsole immer verwenden, um sie zu testen.

Sprachgesteuerte PHP -Apps mit API.ai

Ermöglicht die Wissensbasis der Domänen ermöglicht die Domain -Funktionalität. Durch die Aktivierung der Erfüllung können Sie Dienste von Drittanbietern wie Smalltalk und Wetter nutzen. Dies bedeutet, dass wir keine separate Anfrage an eine bestimmte API stellen müssen, wenn der Dienst, den wir bereits in API.ai.

integrieren müssen

Die aktuelle Zeit an einem bestimmten Ort

erhalten

Jetzt, da wir die Hauptkonzepte verstehen, können wir mit dem Erstellen einer einfachen App fortfahren. Das erste, was wir erstellen werden, ist eine App, um die aktuelle Zeit an einem bestimmten Ort zu erhalten.

Wenn Sie dies noch nicht getan haben, melden Sie sich für ein kostenloses Konto auf der Website der API.AI an, überprüfen Sie Ihre E-Mail-Adresse und melden Sie sich dann mit Ihren Anmeldeinformationen an.

Gehen Sie als nächstes zur Seite der Agenten und erstellen Sie einen neuen Agenten, indem Sie auf die Schaltfläche "Agent erstellen" klicken. Sobald auf der Seite ein neuer Agent erstellt wird, geben Sie den Namen, die Beschreibung und die Sprache ein und speichern Sie.

Sprachgesteuerte PHP -Apps mit API.ai

Auf diese Weise erhalten Sie den Abonnementschlüssel, den Entwicklerzugriffs -Token und den Client Access Token. Sie können diese verwenden, um Anforderungen an die API zu stellen, entweder vom Client (Browser) oder vom Server. Ein Vorteil der Erstellung der Anfragen vom Server besteht darin, Ihre Anmeldeinformationen versteckt zu halten.

Der von uns erstellte Agent verwendet Domänen. Dies bedeutet, dass wir keine Entitäten und Absichten einrichten müssen. Was wir brauchen, ist ein wenig Hilfe von zwei Google -APIs: Geocoding -API und Timezone -API. Die Geokodierungs -API wird verwendet, um den Ort, den wir von API.AI erhalten, in Koordinaten umzuwandeln. Anschließend verwenden wir diese Koordinaten, um die TimeZone -API abzufragen, um die aktuelle Zeit für diesen Ort zu erhalten. Gehen Sie zu Ihrer Google -Konsole und aktivieren Sie die Timezone -API. Für die Geokodierungs -API müssen keine API -Schlüssel geliefert werden, sodass wir sie nicht aktivieren müssen.

Als nächstes installieren Sie Guzzle. Wir werden Guzzle 5 verwenden, um eine Anfrage an api.ai.

zu stellen
<span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Erstellen Sie dann eine neue PHP -Datei (time.php) und fügen Sie den folgenden Code hinzu, damit wir Guzzle aus unserer Datei verwenden können.

<span>composer require guzzlehttp/guzzle:~5.0</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Danach definieren Sie Ihre API -Schlüssel:

<span><?php
</span><span>require 'vendor/autoload.php';
</span><span>
</span><span>use GuzzleHttp\Client;
</span><span>
</span><span>$client = new Client();</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

In einer realen App können Sie wahrscheinlich die Anmeldeinformationen außerhalb der App -Logik in einer Art lokaler Konfigurationsdatei behalten.

Wir können jetzt eine Anfrage an api.ai stellen. Um eine Anfrage zu stellen, müssen wir als Header im Entwicklerzugriffsstoken und als Abonnementschlüssel weitergeben. Wir geben dann den Körper der Anfrage als JSON weiter. Die Anforderungsbehörde sollte die Abfrage und die Langschlüssel enthalten. Die Abfrage wird über eine Postanfrage von der kundenseitig eingereicht. Ein Beispiel für eine Anfrage für diese App wäre: "Wie spät ist es in Barcelona, ​​Spanien?" oder "Wie ist die aktuelle Zeit in Ikebukuro, Japan?". Die zurückgegebene Antwort ist eine JSON -Zeichenfolge, daher konvertieren wir sie in ein Array, indem wir die JSON -Methode für die $ Antwort aufrufen.

<span>$google_api_key = 'YOUR_GOOGLE_API_KEY';
</span><span>$apiai_key = 'YOUR_API_AI_AGENT_DEVELOPER_ACCESS_TOKEN';
</span><span>$apiai_subscription_key = 'YOUR_API_AI_SUBSCRIPTION_KEY';</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Hier ist eine Beispielantwort, die wir erhalten, wenn wir die obige Anfrage stellen:

<span>$query = $_POST['query']; //the users query
</span><span>
</span><span>$response = $client->post('https://api.api.ai/v1/query', array(
</span><span>    'headers' => array(
</span><span>        'Authorization' => "Bearer {$apiai_key}",
</span><span>        'ocp-apim-subscription-key' => $apiai_subscription_key,
</span><span>        'Content-Type' => 'application/json; charset=utf-8'
</span><span>    ),
</span><span>    'json' => array(
</span><span>        "query" => $query,
</span><span>        "lang" => "en"
</span><span>    )
</span><span>));
</span><span>
</span><span>$result = $response->json();</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wenn wir einen Status von 200 erhalten, bedeutet dies, dass die Anfrage erfolgreich war. Die Daten, die wir benötigen, werden im Ergebniselement gespeichert. In diesem Fall müssen wir den Ort nur aus den Parametern extrahieren. Wenn ein Ort nicht zurückgegeben wird, sagen wir dem Benutzer nur, dass der Ort nicht gefunden wird.

<span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wenn ein Ort gefunden wird, stellen wir eine Anfrage an die Google Geocoding -API ein, um den Ort in Koordinaten umzuwandeln. Wenn der Status in Ordnung ist, bedeutet dies, dass wir ein Ergebnis erhalten haben. Also extrahieren wir einfach die Breiten- und Längenwerte aus dem ersten Ergebnis.

<span>composer require guzzlehttp/guzzle:~5.0</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Als nächstes erhalten wir den aktuellen Unix -Zeitstempel. Wir geben diesen Wert zusammen mit dem Breitengrad und Längengrad als Abfrage für unsere Anfrage an die Google TimeZone -API. Anschließend extrahieren wir die Zeitzoneid, mit der wir die TimeZone mit der Methode DATE_DEFAULT_TIMEZONE_SET vorübergehend festlegen können. Schließlich geben wir nur die formatierte Zeit an den Benutzer aus.

<span><?php
</span><span>require 'vendor/autoload.php';
</span><span>
</span><span>use GuzzleHttp\Client;
</span><span>
</span><span>$client = new Client();</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Gehen wir mit der Kundenseite fort. Erstellen Sie eine index.html -Datei mit dem folgenden Code:

<span>$google_api_key = 'YOUR_GOOGLE_API_KEY';
</span><span>$apiai_key = 'YOUR_API_AI_AGENT_DEVELOPER_ACCESS_TOKEN';
</span><span>$apiai_subscription_key = 'YOUR_API_AI_SUBSCRIPTION_KEY';</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir verwenden JQuery (für die Ereignishandhabung) und Responsive-Voice.js. Die Responsive-Voice-Bibliothek ermöglicht es uns, Text in Sprache umzuwandeln. Wir verwenden es, um die Ergebnisse zu sprechen, die wir vom Server erhalten.

Wir haben auch Spracherkenntnisse.js, die wir zum Konvertieren von Sprache in Text verwenden. Dies verwendet die Web -Sprach -API. Leider wird es zum Zeitpunkt des Schreibens immer noch nur teilweise bei einigen Browsern unterstützt. Daher wird dieses Tutorial angenommen, dass Sie Chrome verwenden (was es unterstützt).

erläutern wir die obige Datei. Erstens ist die globale Variable, mit der wir das aktuelle Spracherkennungsobjekt speichern werden.

<span>$query = $_POST['query']; //the users query
</span><span>
</span><span>$response = $client->post('https://api.api.ai/v1/query', array(
</span><span>    'headers' => array(
</span><span>        'Authorization' => "Bearer {$apiai_key}",
</span><span>        'ocp-apim-subscription-key' => $apiai_subscription_key,
</span><span>        'Content-Type' => 'application/json; charset=utf-8'
</span><span>    ),
</span><span>    'json' => array(
</span><span>        "query" => $query,
</span><span>        "lang" => "en"
</span><span>    )
</span><span>));
</span><span>
</span><span>$result = $response->json();</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Als nächstes kommt die Startrekognitionsmethode. Dies erstellt ein neues Spracherkennungsobjekt. Dadurch wird der Benutzer aufgefordert, das Mikrofon zu verwenden. Als nächstes setzen wir die Sprache auf Englisch und beginnen die Spracherkennung. Wir hören dann auf das OnStart -Event zu. Wenn dieses Ereignis ausgelöst wird, bedeutet dies, dass die Spracherkennung begonnen hat. Wir nennen die UpdateRec -Methode, wenn dies geschieht, was den Text der Schaltfläche zum Starten und Stoppen der Spracherkennung ändert. Wir hören auch auf das OnResult -Ereignis zu, das ausgelöst wird, wenn der Benutzer seit einigen Sekunden aufgehört hat. Dies enthält die Ergebnisse der Spracherkennung. Wir müssen die Ergebnisse durchlaufen und das Transkriptelement in jedem einzelnen verwenden, um den von uns benötigten Text zu erhalten. Sobald dies erledigt ist, rufen wir die SetInput -Methode auf, die den Wert des Abfrage -Textfelds ändert, und die Send -Methode, die die Abfrage an den Server übermittelt. Als nächstes nennen wir die StopRecognition -Methode, um die Spracherkennung zu stoppen und die Benutzeroberfläche zu aktualisieren. Wir müssen auch das gleiche im beruflichen Ereignis tun.

Array
(
    [id] => eb69f468-6e1a-41c9-883d-6ac7c71cd187
    1739117986 => 2015-05-16T09:19:47.519Z
    [result] => Array
        (
            [source] => domains
            [resolvedQuery] => What's the current time in Barcelona Spain?
            [speech] => 
            [action] => clock.time
            [parameters] => Array
                (
                    [location] => Barcelona Spain
                )

            [metadata] => Array
                (
                    [inputContexts] => Array
                        (
                        )

                    [outputContexts] => Array
                        (
                        )

                    [contexts] => Array
                        (
                        )

                )

        )

    [status] => Array
        (
            [code] => 200
            [errorType] => success
        )

)
Nach dem Login kopieren
Nach dem Login kopieren

Hier ist die UpdateRec -Methode.

<span>if(!empty($result['result']) && !empty($result['result']['parameters']['location'])){
</span><span>    $location = $result['result']['parameters']['location'];
</span><span>
</span><span>}else{
</span><span>    echo "Sorry, I could not find that location.";
</span><span>}</span>
Nach dem Login kopieren
Nach dem Login kopieren

setInput -Methode.

<span>$place_response = $client->get("http://maps.googleapis.com/maps/api/geocode/json?address={$location}&sensor=false");
</span><span>
</span><span>$place_result = $place_response->json();
</span><span>
</span><span>if($place_result['status'] == 'OK'){
</span><span>
</span><span>    $lat = $place_result['results'][0]['geometry']['location']['lat'];
</span><span>    $lng = $place_result['results'][0]['geometry']['location']['lng'];
</span><span>}</span>
Nach dem Login kopieren

StopRecognition -Methode.

<span>$timestamp = time(); //get the current unix timestamp
</span><span>
</span><span>$time_response = $client->get("https://maps.googleapis.com/maps/api/timezone/json?location={$lat},{$lng}&timestamp={$timestamp}&key={$google_api_key}");
</span><span>
</span><span>$time_result = $time_response->json();
</span><span>
</span><span>if($time_result['status'] == 'OK'){
</span><span>    $timezone = $time_result['timeZoneId'];
</span><span>
</span><span>    date_default_timezone_set($timezone);
</span><span>
</span><span>    echo 'It's currently ' . date('l, F j, Y g:i A') . ' in ' . $location;
</span><span>}</span>
Nach dem Login kopieren

Abgesehen davon haben wir auch die SwitchRecognition -Methode, die jedes Mal aufgerufen wird, wenn der Benutzer auf die Schaltfläche klickt, um die Spracherkennung auszulösen, um zu starten oder zu stoppen.

<span><!DOCTYPE html>
</span><span><html lang="en">
</span><span><head>
</span><span>    <meta charset="UTF-8">
</span><span>    <title>time</title>
</span><span>    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
</span><span>    <script src="responsive-voice.js"></script>
</span><span></head>
</span><span><body>
</span><span>    <div>
</span><span>        <input type="text" id="query" name="query"> <button id="rec">Speak</button>
</span><span>    </div>
</span><span>    <div id="response"></div>
</span><span>    <script src="speech-recognition.js"></script>
</span><span>    <script src="main.js"></script>
</span><span></body>
</span><span></html></span>
Nach dem Login kopieren

Wenn der Benutzer die Eingabetaste im Abfragefeld drückt, wird auch die Abfrage an den Server gelöst.

<span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Der größte Teil des Codes in der Datei der Spracherkenntnis.

Weiter ist die main.js -Datei, in der wir unsere Abfrage an den Server senden. Sobald wir eine Antwort erhalten haben, verwenden wir Responsive-Voice, um sie auszusprechen und auch im Antwortbehälter auszugeben. Auf diese Weise können wir die Antwort visuell überprüfen.

<span>composer require guzzlehttp/guzzle:~5.0</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Währungswandler

Die nächste App, die wir erstellen werden, ermöglicht es den Benutzern, einen bestimmten Betrag von einer Währung in eine andere zu konvertieren.

Erstellen Sie zuerst einen neuen Agenten und nennen Sie es CurrencyConverter.

Sprachgesteuerte PHP -Apps mit API.ai

Erstellen Sie unter diesem Agenten eine neue Entität und nennen Sie es Währung. Dies wird die verschiedenen Währungen darstellen, die wir konvertieren können. Definieren Sie einige Währungen, die wir zum Testen verwenden können, und klicken Sie auf "Speichern".

Sprachgesteuerte PHP -Apps mit API.ai

Erstellen Sie als nächstes eine neue Absicht und nennen Sie es ConvertMoney.

Sprachgesteuerte PHP -Apps mit API.ai

Aus dem obigen Screenshot können Sie feststellen, dass wir Folgendes im Abschnitt "Benutzer sagen" hinzugefügt haben:

In
<span><?php
</span><span>require 'vendor/autoload.php';
</span><span>
</span><span>use GuzzleHttp\Client;
</span><span>
</span><span>$client = new Client();</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Abschnitt "Benutzer sagt" definieren wir Beispiele dafür, was der Benutzer sagen kann, um diese spezifische Absicht auszulösen. Was wir hier tun, ist die Verwendung von Entitäten als Ersatz für tatsächliche Werte, die der Benutzer verwendet. @sys.number kann auf eine beliebige Nummer verweisen. @Currency kann auf jede Währung verweisen, die wir früher hinzugefügt haben, als wir die Währungsentität erstellt haben. Durch die Verwendung des Dickdarms nach der Entität können wir ihm einen Alias ​​zuweisen. Dieser Alias ​​kann dann verwendet werden, um den vom Benutzer verwendeten Wert im Code zu erhalten.

In

im Abschnitt "Aktion" definieren wir die Aktion oder Methode, die wir ausführen möchten, wenn diese spezifische Absicht verwendet wird. In diesem Fall werden wir nichts definieren, weil wir nur eine App erstellen, die nur eine Sache tut.

Der Abschnitt "Erfüllung" definiert eine Vorlage für die Sprache, die wir ausgeben möchten, sobald die Absicht verwendet wird. Zum Beispiel können wir Folgendes platzieren:

<span>$google_api_key = 'YOUR_GOOGLE_API_KEY';
</span><span>$apiai_key = 'YOUR_API_AI_AGENT_DEVELOPER_ACCESS_TOKEN';
</span><span>$apiai_subscription_key = 'YOUR_API_AI_SUBSCRIPTION_KEY';</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Dies wird dann im Sprachgegenstand im Ergebnis verfügbar sein, das wir erhalten. Von dort aus können wir einen String -Ersatz ausführen, um diese Variablen durch die von uns erhaltenen Werte zu ersetzen. Aber lassen wir es einfach als leer für diese App.

Sobald Sie fertig sind, klicken Sie auf die Schaltfläche "Speichern", um die Absicht zu speichern.

Jetzt sind wir bereit, mit dem Code fortzufahren. Erstellen Sie eine Exchange-rate.php-Datei in Ihrem Arbeitsverzeichnis und fügen Sie den folgenden Code hinzu:

<span>window.location.href = "https://www.youtube.com/results?search_query=pikachu";</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wie Sie aus dem obigen Code sehen können, ist es im Grunde genommen das gleiche wie früher in unserer vorherigen App. Nur dieses Mal haben wir die Variable $ currencyLayer_apikey hinzugefügt. Dies speichert den API -Schlüssel, den wir von CurrencyLayer.com erhalten haben, einer API, mit der wir den aktuellen Wechselkurs von einer Währung zu einer anderen erhalten können. Wenn Sie mitmachen möchten, melden Sie sich für einen API -Schlüssel an.

Als nächstes überprüfen wir, ob es Ergebnisse gibt, und extrahieren die Daten, die wir benötigen. In diesem Fall müssen wir die Währung erhalten, die der Benutzer konvertieren möchte, die Währung in und dann in den Betrag.

<span>composer require guzzlehttp/guzzle:~5.0</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

wir stellen dann eine Anfrage an die API und extrahieren den Wechselkurs aus den Ergebnissen:

<span><?php
</span><span>require 'vendor/autoload.php';
</span><span>
</span><span>use GuzzleHttp\Client;
</span><span>
</span><span>$client = new Client();</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Ergebnisse, die wir aus der API erhalten, sehen so aus:

<span>$google_api_key = 'YOUR_GOOGLE_API_KEY';
</span><span>$apiai_key = 'YOUR_API_AI_AGENT_DEVELOPER_ACCESS_TOKEN';
</span><span>$apiai_subscription_key = 'YOUR_API_AI_SUBSCRIPTION_KEY';</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt, da wir den aktuellen Wechselkurs haben, müssen wir nur noch den Zinssatz mit dem Betrag multiplizieren, den der Benutzer bereitgestellt hat, und dann das Ergebnis ausgeben.

<span>$query = $_POST['query']; //the users query
</span><span>
</span><span>$response = $client->post('https://api.api.ai/v1/query', array(
</span><span>    'headers' => array(
</span><span>        'Authorization' => "Bearer {$apiai_key}",
</span><span>        'ocp-apim-subscription-key' => $apiai_subscription_key,
</span><span>        'Content-Type' => 'application/json; charset=utf-8'
</span><span>    ),
</span><span>    'json' => array(
</span><span>        "query" => $query,
</span><span>        "lang" => "en"
</span><span>    )
</span><span>));
</span><span>
</span><span>$result = $response->json();</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Auf der Client-Seite verwenden wir immer noch dieselben HTML und Dateien, die wir früher in unserer ersten App verwendet haben. Sie können die gleichen Dateien in Ihr Arbeitsverzeichnis einfügen, wenn Sie folgen.

Array
(
    [id] => eb69f468-6e1a-41c9-883d-6ac7c71cd187
    1739117986 => 2015-05-16T09:19:47.519Z
    [result] => Array
        (
            [source] => domains
            [resolvedQuery] => What's the current time in Barcelona Spain?
            [speech] => 
            [action] => clock.time
            [parameters] => Array
                (
                    [location] => Barcelona Spain
                )

            [metadata] => Array
                (
                    [inputContexts] => Array
                        (
                        )

                    [outputContexts] => Array
                        (
                        )

                    [contexts] => Array
                        (
                        )

                )

        )

    [status] => Array
        (
            [code] => 200
            [errorType] => success
        )

)
Nach dem Login kopieren
Nach dem Login kopieren

Der einzige Unterschied ist die URL, an die wir die Anfrage senden. Zeigen Sie darauf, wo Ihre Exchange-Rate.php serviert wird:

<span>if(!empty($result['result']) && !empty($result['result']['parameters']['location'])){
</span><span>    $location = $result['result']['parameters']['location'];
</span><span>
</span><span>}else{
</span><span>    echo "Sorry, I could not find that location.";
</span><span>}</span>
Nach dem Login kopieren
Nach dem Login kopieren

Schlussfolgerung

In diesem Tutorial haben wir gelernt, wie man api.ai zum Erstellen von Sprach-fähige PHP-Apps verwendet. Der Browser -Support ist immer noch ziemlich begrenzt, da die Web -Sprach -API immer noch nicht weit verbreitet ist. API.AI unterstützt jedoch andere Plattformen neben dem Web. Android, Cordova, .NET, iOS sind einige Beispiele. Dies bedeutet, dass wir API.AI verwenden können, ohne mir Sorgen um die Unterstützung auf diesen Plattformen zu machen. Schauen Sie sich die Dokumente an, wenn Sie mehr erfahren möchten. Die Dateien, die wir in diesem Tutorial verwendet haben, sind in diesem Github -Repository verfügbar.

häufig gestellte Fragen (FAQs) zu sprachgesteuerten PHP-Apps mit API.ai

Wie kann ich API.ai in PHP für die Spracherkennung integrieren? Zunächst müssen Sie einen neuen Agenten in API.AI erstellen. Dieser Agent ist dafür verantwortlich, die Spracheingabe des Benutzers zu verstehen und ihn in umsetzbare Daten zu konvertieren. Nach dem Erstellen des Agenten müssen Sie ihn mit Phrasen und Antworten trainieren. Sobald der Agent trainiert ist, können Sie die API.AI -PHP SDK verwenden, um den Agenten in Ihre PHP -Anwendung zu integrieren. Das SDK bietet Methoden zum Senden von Sprachdaten an den Agenten und das Empfangen der verarbeiteten Daten zurück.

Was sind die Voraussetzungen für den Erstellen einer sprachgesteuerten PHP-App mit API.ai? -orientierte Programmierung. Sie müssen auch über ein Kenntnis von API.AI und wie es funktioniert. Darüber hinaus müssen Sie einen Server haben, auf dem Sie Ihre PHP -Anwendung hosten können. Zuletzt müssen Sie die API.AI -PHP -SDK auf Ihrem Server installieren lassen.

Kann ich andere Spracherkennungs -APIs mit PHP verwenden? . Einige beliebte Alternativen zu API.AI sind IBM Watson, Microsoft Azure Cognitive Services und Google Cloud Speech-to-Text. Diese APIs liefern auch PHP -SDKs, mit denen Sie sie in Ihre PHP -Anwendung integrieren können.

Wie kann ich die Genauigkeit der Spracherkennung in meiner PHP -App verbessern? In Ihrer PHP -App beinhaltet die Schulung Ihres API.AI -Agenten mit mehr Phrasen und Antworten. Je mehr Daten der Agent hat, desto besser kann er die Spracheingabe verstehen und verarbeiten. Sie können auch die Funktionen des maschinellen Lernens des Agenten verwenden, um die Leistung im Laufe der Zeit kontinuierlich zu verbessern.

Wie kann ich in meiner sprachgesteuerten PHP-App mit verschiedenen Sprachen umgehen? So können Sie Ihren Agenten schulen, um in verschiedenen Sprachen Spracheingaben zu verstehen und darauf zu reagieren. Beim Senden von Sprachdaten an den Agenten können Sie die Sprache in der Anfrage angeben. Der Agent verarbeitet dann die Spracheingabe basierend auf der angegebenen Sprache. KI für Text-to-Speech in Ihrer PHP-App. API.AI bietet Methoden zum Umwandeln von Text in Sprache. Sie können diese Methoden verwenden, um Ihre App dem Benutzer Antworten oder Anweisungen auszusprechen.

Wie kann ich die Sprachdaten in meiner PHP -App sichern? Beinhaltet das Verschlüsseln der Daten, bevor Sie sie an api.ai senden. Sie können die integrierten Verschlüsselungsfunktionen von PHP verwenden, um die Daten zu verschlüsseln. Darüber hinaus sollten Sie HTTPS für die gesamte Kommunikation zwischen Ihrer App und API.AI verwenden, um Datenabhörungen zu verhindern. Verwenden Sie API.AI für sprachgesteuerte Web-Apps. Die API.AI -PHP -SDK kann in jeder PHP -Anwendung, einschließlich Web -Apps, verwendet werden. Sie können JavaScript verwenden, um die Spracheingabe des Benutzers im Browser zu erfassen und ihn dann zur Verarbeitung an Ihr PHP -Backend zu senden. Kann die Spracherkennungsfunktionen Ihrer PHP -App testen, indem Sie eine Reihe von Testphrasen und Antworten erstellen. Sie können diese Tests dann verwenden, um zu überprüfen, ob die App die Spracheingabe korrekt versteht und verarbeitet.

Kann ich API.AI für sprachgesteuerte mobile Apps verwenden? Sie müssten jedoch die API.AI SDK für die spezifische mobile Plattform (Android oder iOS) anstelle des PHP SDK verwenden. Die mobilen SDKs bieten Methoden zur Erfassung der Spracheingabe des Benutzers und senden Sie sie zur Verarbeitung an api.ai.

Das obige ist der detaillierte Inhalt vonSprachgesteuerte PHP -Apps mit API.ai. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage