Dieser Artikel wurde maschinell übersetzt.

Die Working Programmer

Sprich mit mir: Sprachnachrichten und SMS in der Cloud

Ted Neward

Ted NewardIm vergangenen Oktober fand mich einige wohltätige Arbeit mit GiveCamp in Seattle. (Weiß, nicht was GiveCamp ist? Nehmen Sie eine zweite und werfen Sie einen Blick: givecamp.org.) Während dieser Zeit stieß ich auf eine Gruppe, die daran interessiert war, dabei einige SMS messaging als Teil einer Anwendung, die die Mitglieder bauen wollte. Wir kamen ins Gespräch, und das Thema der interaktive Sprachapplikationen kam. Sie waren daran interessiert, etwas zu tun, wie die (insbesondere einrichten einige automatisierte Dankeschön Aufrufe Spender), aber dachte, Sie hatten Ihre eigenen Call-Center ausführen und installieren Ihre eigenen PBX-Software und Hardware, um es Arbeit zu bilden.

Au Contraire, Mes Amis.

Wie Glück, an der Philadelphia Emerging Technology Event (auch bekannt als Philly ETE) Anfang letzten Jahres wäre es, ich habe einige Jungs von Voxeo, ein PBX-System der Enterprise-Klasse, und sie stellte mich Tropo, Voice und SMS (unter anderem) Wolke gehosteten Lösung. Und für alles Telefonie-mit Leute, es ist einen Blick Wert.

Tropo: Ein TESTAMONIALS

Grundsätzlich Tropo ist nicht alles, was anders als einige der anderen Stimme/SMS Dienste zur Verfügung, aber es hat einen entscheidenden Vorteil gegenüber den anderen, die, denen ich angeschaut habe: während Ihres Entwicklungszyklus ändert kein Geld Hände. Erstellen eine Anwendung, die diesen Service während der Entwicklung verwendet trivial ist — nur Wandern auf mehr als auf der Website von Tropo (tropo.com) anmelden und die komplette Palette der Dienstleistungen steht und an Ihren Fingerspitzen so lange wie Sie wollen.

Natürlich gibt es andere Stimme/SMS-Dienste, und es lohnt sich immer, die Alternativen untersuchen. Aber ich werde für diesen Artikel (und seine Nachfolger), Tropo Dienste zu nutzen. Caveat Emptor.

Erste Schritte

Wie bei jeder anderen Cloud-basierte Dienste, erfordert die erste Schritte mit Tropo Erstellen eines Kontos auf die Server und die Reaktion auf die E-mail-Überprüfung. Sobald das erledigt ist, einloggen wieder Tropo wird das Konto Dashboard anzeigen, und es ist hier, dass der Spaß beginnt.

Nur um Ihnen zu zeigen wie viel Spaß dabei sein kann, versuchen Sie es jetzt. Greifen Sie zum Telefon und wählen Sie 530-206-0504.

Hello, World!

Wie die meisten Leser dieses Magazins wissen, Tradition und die Götter der Informatik beide verlangen, dass die erste in eine neue Sprache oder Plattform Anwendung der "Hello, World!" Anwendung. Sei ferne von mir Tradition Bock (zumindest, wenn es dient mein Ziel zu, bleiben), so ist der erste Schritt zum Erstellen einer neuen Tropo-Anwendung und erstellen Sie eine einfache Voicemail-Grußformel mit es. Aber bevor wir zu weit damit kommen, lassen Sie uns sicherstellen, dass wir auf die Architektur hier klar sind.

Wie die meisten Wolke gehosteten Dienste, Tropo besitzt und verwaltet die Server, auf dem die Telefoniehardware ausgeführt wird, und wie bei den meisten Wolke gehosteten Anwendungen, das heißt der Anwendungsentwickler keine Hardware haben — ein Segen und ein Fluch in den meisten Szenarien. In diesem Fall jedoch die meisten der "Fluch" Ende der Wolke fällt weg, weil wir nicht bitten Tropo Daten für uns hosten. In der Tat, Tropo nicht sogar haben die Skripts hosten, die die Appli fahren­kation. Es kann und ganz glücklich wird, aber wenn das von Belang ist, dann das Skript aus jeder beliebigen URL abgerufen und ausgeführt werden kann auf Tropo Servern. Für dieses Stück werden wir Tropo gehosteten Dateien verwendet werden, nur weil das scheint leichter zu starten.

Sobald die E-mail angekommen ist und Überprüfung ist gesorgt, sollte einloggen wieder Tropo ein Dashboard offenbaren.

Klicken Sie auf "Erstellen einer Anwendung" zu nehmen Abbildung 1.

Creating an Application in Tropo
Abbildung 1 Erstellen einer Anwendungs in Tropo

Wählen Sie "Tropo Scripting" und geben sie einen Namen; In diesem Beispiel zum "HelloMSDN". Schließlich klicken Sie auf den Link "Datei gehostet" und wählen Sie "für diese Anwendung eine neue gehostete Datei erstellen"; ein einfachen Text-Editor erscheint an dieser Stelle. Wie Sie sich vorstellen können, bauen Sie eine kleine Skriptdatei (in Ihrer Wahl von Skriptsprachen — JavaScript, PHP, Ruby, Groovy oder Python), die wird ausgelöst, wenn Tropo erzählt wird, mit diesem Skript, das in diesem Fall werden, wenn jemand eine Telefonnummer wählt, die Tropo Sie geben "ausführen". (Mehr dazu später.)

Rufen Sie die Datei "HelloMSDNScript.js" (die JS-Erweiterung wichtig, Tropo sagen, dass dies ein JavaScript-Skript ist), und setzen Sie in den Textkörper der Datei, die folgenden:

say("Greetings, MSDN fans!")

Wenn das erledigt ist, sollte es aussehen Abbildung 2.

Creating a Script in Tropo
Abbildung 2 erstellen ein Skript in Tropo

Wenn alles gut ist, klicken Sie auf "Create File" und dann "Anwendung erstellen." Sobald das erledigt ist, Tropo gelangen Sie zurück zum Dashboard Anwendung, die ein wenig anders jetzt aussehen wird wie Sie, in sehen können Abbildung 3.

The Tropo Application Dashboard
Abbildung 3 das Tropo Anwendung Dashboard

Das Dashboard ist besonders wichtig, weil das ist, wohin Sie gehen, um einige Kontrolle über die Kanäle haben welche Tropo hört. In vielerlei Hinsicht die, die nicht technische Leute die meisten viszerale Reaktion erzeugt die Telefon-Demo, so let 's get Tropo die Anwendung eine Rufnummer zuweisen. Dies geschieht, indem Sie "Eine Telefonnummer hinzufügen" und wählen eine Vorwahl, aus der die Zahl generiert wird. Natürlich, USA gebührenfrei (1-800) Zahlen werden auch unterstützt, aber wegen der Kosten, erfordert das Einrichten von einem Fakturierungsplan. Sobald Sie eine Vorwahl gewählt haben, Tropo braucht einige Minuten, um die Anzahl bereitstellen, und dann Sie können wählen Sie die Nummer und in feinen synthetisierten Stimme Mode begrüßt werden. (Ja, tun Sie es jetzt.)

Hallo, Honig! Liebst du mich noch?

Aber das ist nicht annähernd genug. Ist wie der Valentine Jahreszeit nähert, und die Ferienzeit ist nur Vergangenheit, und Sie wahrscheinlich zu viel Xbox 360 über Weihnachten gespielt und bekam, dass Ihre aussagekräftige anderen alle verärgert mit Ihnen für nicht Rücksicht nehmen auf ihm (ja, meine Frau noch bringt dies bis beim Abendessen), vielleicht möchten Sie Ihre Lieben sicher eine (Freundin/Freund/Partner/whatever) immer noch in dich verliebt ist. So let 's spiegeln den Code um für ein wenig und stellen Sie sicher. Bearbeitung der laufenden Anwendungs ist recht einfach: geht zurück zum Dashboard Anwendung (die noch, sein sollte, vorausgesetzt, dass Sie geschlossen haben, das Text-Editor-Fenster; Wenn Sie noch nicht, keine Sorge, nur dort bleiben), einfach klicken Sie erneut auf den Link "Datei gehostet" und wählen Sie die Option "Diese gehosteten Datei bearbeiten" den Text-Editor zurück bringen. Diesmal, ersetzen Sie den Code sagen mit folgendem (mit, natürlich, Ihre lieben Namen anstelle von meiner Frau):

say("I love you, Charlotte!");
var results = ask("Do you love me too?
Yes or no?", {
  choices: "yes, no"
);
log("results.value: " + results.value)
if (results.value == "yes") {
  say("Yay!
That makes me happy.");
}
else {
  say("Oh.
Now I'm a sad panda.");
}

Die Ask Routine ist ein blockierender Aufruf, spielen die Eingabeaufforderung, und dann warten eine Sprachantwort (bis zu einer konfigurierbaren Timeout Anzahl von Sekunden). Dies ist eine JavaScript-API, können wir in einer Reihe von optionalen Parametern in der JSON-Struktur am Ende des Gesprächs Fragen übergeben, die in diesem Fall enthält die Zeichenfolge "Wahl" ist eine durch Trennzeichen getrennte Liste der akzeptablen Stimme Antworten. Tropo enthält einige Sprache-zu-Text-Übersetzer und wird versuchen, die gesprochene Antwort des Anrufers zu analysieren – so gut es möglich ist, sowieso. (Wenn Tropo seine Analyse tut, tut es also mit "Vertrauen" Faktor, der angibt, wie stark es denkt, dass es richtig analysiert und das Ausmaß des Vertrauens Sie Nachfrage in Ihrer gesprochenen Antworten konfiguriert werden kann. Standardmäßig ist.3, das ist ziemlich Loosey goosey, aber in der Regel ausreichend für gesprochene Antworten, wenn die annehmbaren Ergebnisse, wie in der vorherigen "Ja oder Nein" Eingabeaufforderung aufgefordert werden.)

Aber warte! Die Standard-Stimme ist eine weibliche Stimme, und das könnte ein wenig seltsam klingen, wenn es um meine Frau zu senden. Also lasst uns die Stimme Umstellung auf etwas wie meine eigene. Dies geschieht, indem Sie im Feld optional "Stimme" in die JSON-Argumente übergeben, für beide sagen und Fragen:

say("I love you, Charlotte!", { voice:"victor"});
var results = ask("Do you love me too?
Yes or no?", {
  voice: "victor",
  choices: "yes, no"
});
log("results.value: " + results.value)
if (results.value == "yes") {
  say("Yay!
That makes me happy.", { voice:"victor"});
}
else {
  say("Oh.
Now I'm a sad panda.", { voice:"victor"});
}

Sobald getan, bearbeiten, speichern Sie die Datei; Tropo wird die Datei aktualisiert, und der nächste Anruf gemacht wird mit der neuen Stimme spielen. Beachten Sie, dass die "Sieger" ist nur eine von mehreren möglichen Stimmen, einschließlich einer Vielzahl von verschiedenen Akzenten. Stellen Sie sicher Sie nicht wählen Sie die sexier als Ihre eigene natürliche Stimme, aber klingt, oder Ihre ausgewählten liebsten können Sie das Telefon vorziehen, und das wäre wohl schlecht.

Natürlich wäre es am besten wäre es Ihre eigene Stimme, und mit ein wenig Vorbereitung, können Sie es so. Beide sagen und Fragen, Unterstützung beim Abspielen einer MP3- oder WAV-Datei statt die aktuell verwendete Text-Sprach-Option zu tun, so greifen Ihre treuen Computermikrofon aufnehmen der Ansagen und die Antworten und laden Sie sie auf Ihren Lieblings-Web-Server. Geben Sie dann, statt mit den Text zu analysieren und zu synthetisieren, die URLs für die aufgezeichneten Dateien (die müssen Sie aufzeichnen und speichern auf einem Server mit HTTP zugegriffen werden kann) zu spielen; der Code wird als solche gelesen (wobei die URL Ihrer aufgenommenen Datei ist):

say('http://www.tedneward.com/howdy.wav');

Weiter: Künstliche Intelligenz

Ich habe nur an der Oberfläche, was Sie, mit Tropo tun können gekratzt — in der Tat, ich habe viel mehr mit Tropo erkunden, bevor ich mit dem Thema fertig bin – aber um vollständig zu verstehen, wo ich mit diesem speziellen Beispiel gehen wollen, müssen wir einen Abstecher in die wunderbare Welt der künstlichen Intelligenz nehmen, dann erneut Tropo wieder.

Ted Neward ist ein architektonischer Berater mit Neudesic LLC. Er hat mehr als 100 Artikel geschrieben, ist ein C#-MVP und INETA-Sprecher und hat verfasst und Mitautor von einem Dutzend Bücher, einschließlich der kürzlich veröffentlichten "professionelle f# 2.0" (Wrox). Er berät und Mentoren regelmäßig. Sie erreichen ihn unter ted@tedneward.com bist du interessiert, ihn zusammen mit Ihrem Team, oder lesen Sie seinen Blog unter blogs.tedneward.com.

Dank der folgenden technischen Experten für die Überprüfung dieses Artikels: Adam Kalsey