
Teilen Sie:
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.
Erweiterung von Nexmo: Vergleich der Streaming-Transkription
Lesedauer: 5 Minuten
In der Welt der Kommunikation sind Worte lebenswichtig, und die richtigen Worte zu finden ist unglaublich wichtig. Die Transkription von Voice-Anrufen kann Unternehmen dabei helfen, aufkommende Trends in den Inhalten von Vertriebs- und Support-Telefonaten zu verstehen.
Bei der Transkription werden Audiogespräche aufgenommen und in geschriebene Worte umgewandelt. In der Vergangenheit wurde dies von Menschen erledigt, die sich eine Aufnahme anhörten und die Wörter manuell abtippten. Diese Praxis gibt es auch heute noch. Inzwischen gibt es automatisierte Dienste, die es Softwareentwicklern ermöglichen, Audiodateien an Dienste zu senden, um ein schnelleres Ergebnis zu erzielen.
Diese Arbeit allein kann schon unglaubliche Erkenntnisse liefern, aber ich konzentriere mich speziell auf Streaming-Transkriptionen, bei denen Echtzeitinformationen Ihrem Vertriebs- und Supportteam eine weitere Detailebene bieten können.
Übersicht
Dieser Beitrag ist ein Vergleich und Überblick über die vier führenden Cloud-Anbieter von Streaming-Transkriptionsdiensten: Amazon Transcribe, Azure Cognitive Speech Service, Google Cloud Speech-to-Text, und IBM Watson Sprache-zu-Text.
Verwendung der Nexmo Voice API und WebSocketshabe ich einen Sprachanruf von meinem Mobiltelefon aus getätigt und den Ton gestreamt, um den Dienst zu testen. Während des Prozesses habe ich mir einige Notizen zu Funktionen, Benutzerfreundlichkeit, Genauigkeit und Kosten gemacht.
Genauigkeit
Einer der wichtigsten Faktoren bei der Auswahl eines Transkriptionsdienstes ist seine Genauigkeit. Falsche Informationen würden dazu führen, dass man den Daten nicht trauen kann.
Ich habe jeden Dienst mit einer 8kHz Abtastrate mit meinem Mobiltelefon getestet. Sie können auch 16kHzverwenden, aber in einigen Fällen ist dies weniger genau. Ich habe verschiedene Phrasen in einer relativ durchschnittlichen Sprechgeschwindigkeit bei mäßiger Lautstärke gesprochen. Der Raum war auch ruhig genug, um Hintergrundgeräusche zu entfernen.
Jeder Dienst transkribierte die von mir verwendeten Phrasen ohne Probleme, aber es hing zum Teil davon ab, wie gut ich sprach. Leider hat jeder Dienst mit mangelnder Aussprache zu kämpfen.
Ansonsten können Sie Ihre Transkriptionen getrost mit einem dieser Dienste erledigen.
"Bleibt von den Türen weg."
IBM Watson Speech-to-Text - 90% (Es konnte nicht "stehen", egal wie deutlich ich sprach)
Azure Cognitive Speech Service - 100%
Google Cloud Speech-to-Text - 100%
Amazon Transcribe - 100%
"Vor dem Servieren gut schütteln"
IBM Watson Speech-to-Text - 100%
Azure Cognitive Speech Service - 100%
Google Cloud Speech-to-Text - 100%
Amazon Transcribe - 100%
"Peter Piper hat einen Haufen eingelegte Paprika gepflückt."
IBM Watson Speech-to-Text - 100%
Azure Cognitive Speech Service - 100%
Google Cloud Speech-to-Text - 100%
Amazon Transcribe - 100%
Eigenschaften
Der Funktionsumfang der meisten Dienste ist sehr ähnlich:
Verwendet maschinelles Lernen für mehr Genauigkeit
Benutzerdefinierte Modelle für die Optimierung
Audiodateien und Streaming
Kontextuelle Formatierung für Eigennamen
Unterstützung der Zeichensetzung
Sprachliche Unterstützung
Google Cloud Speech-to-Text hat mit 120 Sprachen die mit Abstand höchste Anzahl an unterstützten Sprachen und kann die Sprache in den meisten Fällen automatisch erkennen. Die nächstgrößere Sprachunterstützung ist Azure Cognitive Speech Service mit 30 und IBM Watson Speech-to-Text mit 15. Amazon Transcribe ist mit nur 5 verfügbaren Sprachen für Streaming-Transkription am restriktivsten (für Audiodateien sind mehr verfügbar).
Benutzerfreundlichkeit
Jeder Anbieter hat seinen eigenen Weg zum Erfolg. Alle bieten Anleitungen für die ersten Schritte in verschiedenen Formaten an. Sie neigen jedoch dazu, entweder eine Audiodatei zu senden oder den Mikrofoneingang zu erfassen. Während die Mikrofoneingabe die Streaming-Methode ist, die wir mit dem Nexmo WebSocket verwenden müssen, kommt sie mit zusätzlichem Front-End-Code, der unnötig war.
Google Cloud Speech-to-Text
Das Google SDK war einfach zu implementieren, indem ein SpeechClient mit dem bereitgestellten SDK und der Datei mit den Google-Anmeldeinformationen, die während des Dienstes Account user.
Die SpeechClient bietet eine Methode namens streamingRecognize die Ereignisse liefert.
const client = new speech.SpeechClient();
let request ={
config: {
encoding: 'LINEAR16',
sampleRateHertz: 8000,
languageCode: 'en-US'
},
interimResults: false
};
const recognizeStream = client
.streamingRecognize(request)
.on('error', console.error)
.on('data', data => {
console.dir(data, {depth: null});
});
Die Einfachheit von Google bietet einen Vorteil gegenüber anderen Wettbewerbern. Man kann mit wenig Aufwand loslegen, und das ist für mich ein großer Gewinn.
Google Cloud Speech-to-Text-Dokumentation
Azure/IBM
Sowohl IBM als auch Azure bieten sprachspezifische SDKs und eine umfangreiche Dokumentation für die ersten Schritte, aber auch der direkte API-Aufruf ist einfach zu implementieren. Diese Dienste können beide verwendet werden, indem einfach eine Verbindung zu einer API-Route mit dem wss:// Protokoll und der Bereitstellung eines Schlüssels.
Azure Cognitive Speech Service
wss://region.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?format=simple&language=LANG_CODE
IBM Watson Sprache-zu-Text
wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=langage_modelEs gibt einige zusätzliche Kopfzeilen, die bereitgestellt werden müssen, aber Sie können die Dokumentation für jeden Dienst als nützliche Ressource finden.
Amazon Transcribe
Ich muss zugeben, dass AWS für mich am schwierigsten zu implementieren war. Die Dokumentation enthielt nur sehr wenige Beispiele, und das SDK schien Streaming-Dienste überhaupt nicht zu unterstützen. Als ich anfing, die Amazon Transcribe-Integration zu erstellen, war HTTP/2 das einzige verfügbare Protokoll und erforderte die Signierung jeder an den Server gesendeten Anforderung. Da ich mit AWS im Allgemeinen ein ziemlicher Neuling bin, erwies sich dies für mich als ziemlich schwierig.
Eine große Wendung erfährt die Geschichte, wenn der Leiter der Entwicklerbeziehungen auftritt, Brandon West einsprang und einen Beispielcode mit einer WebSocket-Verbindung schrieb und mich rettete. Der Beispielcode machte die Dinge viel zugänglicher, aber der allgemeine Autorisierungsprozess und die Anrufsignierung machen Amazon Transcribe im Allgemeinen etwas schwieriger zu implementieren.
Hier habe ich das WebSocket Node-Paket und erstellte eine signierte URL, um die Verbindung herzustellen.
let url = v4.createPresignedURL(
'GET',
`transcribestreaming.${process.env.AWS_REGION}.amazonaws.com:8443`,
'/stream-transcription-websocket',
'transcribe',
crypto.createHash('sha256').update('', 'utf8').digest('hex'), {
'key': process.env.AWS_ACCESS_KEY_ID,
'secret': process.env.AWS_SECRET_ACCESS_KEY,
'protocol': 'wss',
'expires': 15,
'region': process.env.AWS_REGION,
'query': `language-code=${process.env.LANG_CODE}&media-encoding=pcm&sample-rate=${process.env.SAMPLE_RATE}`
}
);
let socket = new WebSocket(url);
Amazon Transcribe ist ein hervorragender Service, aber wenn Sie damit nicht vertraut sind, kann die Lernkurve eine Herausforderung sein.
Amazon Transcribe Dokumentation
Kosten
Alle Dienstanbieter bieten eine einfache oder kostenlose Version für den Einstieg an. Die Grundkosten richten sich nach dem Umfang der transkribierten Audiozeit. Die Anbieter verwenden unterschiedliche Zeitabschnitte, daher habe ich sie in der folgenden Tabelle normalisiert, damit Sie die Kostenunterschiede besser verstehen können.
| Provider | Free Tier | Cost | Normalized Cost |
|---|---|---|---|
| Amazon Transcribe | 60 min/month for 12 months | $0.006/~10 seconds | $0.036/minute |
| Azure Cognitive Speech Service | 5 audio hours free per month | $1/audio hour | $0.016/minute |
| Google Cloud Speech-to-Text | 60 minutes free | $0.006/15 seconds | $0.024/minute |
| IBM Watson Speech-to-Text | 500 Minutes per Month | $0.02/minute | $0.02/minute |
Rekapitulation
Streaming-Transkription ist eine großartige Möglichkeit, Einblicke in Echtzeit zu geben. Jeder der vier führenden Cloud-Anbieter hat großartige Angebote mit zuverlässigen, genauen Sprache-zu-Text-Diensten. Die Verwendung von Nexmo als Audiostream ist eine großartige Erweiterung, die Ihren Kunden ein noch tiefergehendes Kommunikationserlebnis ermöglicht.
Ich empfehle Google Speech-to-Text als eine solide Wahl. Der Preis ist wettbewerbsfähig, und der Dienst ist robust und zuverlässig. Es ist einfach, ihn einzurichten und sofort zu nutzen, was ein Bonus ist.
Wenn Sie einen oder alle diese Dienste ausprobieren möchten, hat das Nexmo Extend-Team einen Beispielcode erstellt, der Ihnen den Einstieg erleichtert.
Teilen Sie:
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.