
Partager:
Kelly J. Andrews est un défenseur des développeurs pour Nexmo. Il bricole des ordinateurs depuis plus de 30 ans et a utilisé BASIC pour la première fois à l'âge de 5 ans.
Ce n'est que lorsqu'il a créé sa première page web en 1997 et qu'il a essayé JavaScript pour la première fois qu'il a trouvé sa véritable vocation. Kelly se bat désormais pour JavaScript, un code testable et une livraison rapide.
Vous pouvez le trouver en train de chanter au karaoké, de faire de la magie ou d'encourager les Cubs et les Fighting Irish.
Extension de Nexmo : Comparaison de la transcription en continu
Temps de lecture : 6 minutes
Dans le monde de la communication, les mots sont vitaux, et il est extrêmement important de trouver les bons. Les transcriptions des appels vocaux peuvent aider les entreprises à comprendre les tendances émergentes dans le contenu des appels téléphoniques de vente et d'assistance.
La transcription est le processus qui consiste à prendre des conversations audio et à les transformer en mots écrits. Dans le passé, cette opération était réalisée par des personnes qui écoutaient un enregistrement et tapaient les mots à la main. Cette pratique existe encore aujourd'hui. Il existe désormais des services automatisés qui permettent aux développeurs de logiciels d'envoyer des fichiers audio à des services pour obtenir un résultat plus immédiat.
Ce travail peut à lui seul fournir des informations incroyables, mais je me concentre plus particulièrement sur les transcriptions en continu où les informations en temps réel peuvent fournir un autre niveau de détail à votre équipe de vente et d'assistance.
Vue d'ensemble
Ce billet est une comparaison et une vue d'ensemble des quatre principaux services de transcription en continu des fournisseurs de cloud computing : Amazon Transcribe, Azure Cognitive Speech Service, Google Cloud Speech-to-Textet IBM Watson Speech-to-Text.
Utiliser l'API Nexmo Voice API et WebSocketsPour tester le service, j'ai connecté un appel vocal à partir de mon téléphone portable et j'ai diffusé l'audio en continu. Au cours du processus, j'ai pris quelques notes concernant les fonctionnalités, la facilité d'utilisation, la précision et les coûts.
Précision
L'un des facteurs les plus importants lors de la sélection d'un service de transcription est sa précision. Si les informations sont incorrectes, les données ne seront pas fiables.
J'ai testé chaque service en utilisant un 8kHz en utilisant mon téléphone portable. Vous pouvez également utiliser 16kHzmais dans certains cas, c'est moins précis. En utilisant diverses phrases, j'ai parlé à une vitesse d'élocution relativement moyenne et à un volume modéré. La pièce était également suffisamment calme pour éliminer les bruits de fond.
Chaque service a transcrit les phrases que j'ai utilisées sans problème, mais cela dépendait en partie de la qualité de mon élocution. Malheureusement, tous les services sont confrontés à un manque d'énonciation.
Sinon, vous pouvez raisonnablement faire confiance à l'un ou l'autre de ces services pour vos transcriptions.
"Restez à l'écart des portes.
IBM Watson Speech-to-Text - 90 % (il n'a pas pu obtenir "stand", quelle que soit la clarté de ma voix)
Azure Cognitive Speech Service - 100
Google Cloud Speech-to-Text - 100
Amazon Transcribe - 100
"Bien agiter avant de servir
IBM Watson Speech-to-Text - 100
Azure Cognitive Speech Service - 100
Google Cloud Speech-to-Text - 100
Amazon Transcribe - 100
"Peter Piper a cueilli un pic de poivrons marinés."
IBM Watson Speech-to-Text - 100
Azure Cognitive Speech Service - 100
Google Cloud Speech-to-Text - 100
Amazon Transcribe - 100
Caractéristiques
Les fonctionnalités de la plupart des services sont très similaires :
L'apprentissage automatique au service de la précision
Modèles personnalisés pour l'optimisation
Fichiers audio et streaming
Formatage contextuel des noms propres
Aide à la ponctuation
Soutien linguistique
Google Cloud Speech-to-Text propose de loin le plus grand nombre de langues prises en charge (120) et peut détecter automatiquement la langue dans la plupart des cas. La langue la plus proche est Azure Cognitive Speech Service avec 30 langues et IBM Watson Speech-to-Text avec 15 langues. Amazon Transcribe est le plus restrictif avec seulement 5 langues disponibles pour la transcription en continu (plus disponibles pour les fichiers audio).
Facilité d'utilisation
Chaque fournisseur a son propre chemin vers le succès. Tous fournissent des guides de démarrage dans différents formats. Cependant, ils ont tendance à concerner soit l'envoi d'un fichier audio, soit la capture d'une entrée de microphone. Bien que l'entrée microphone soit la méthode de streaming que nous devons utiliser avec la Nexmo WebSocket, elle s'accompagne d'un code frontal supplémentaire qui n'était pas nécessaire.
Google Cloud Speech-to-Text
Le SDK de Google a été simple à mettre en œuvre en créant un fichier d'identification de Google. SpeechClient avec le SDK fourni et le fichier d'identifiants Google fourni lors de la création du compte utilisateur du service.
La méthode SpeechClient fournit une méthode appelée streamingRecognize qui fournit des événements.
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});
});
La simplicité de Google lui confère un avantage sur les autres concurrents. Vous pouvez être opérationnel avec peu d'efforts, et pour moi, c'est une grande victoire.
Documentation sur la synthèse vocale dans Google Cloud
Azure/IBM
IBM et Azure fournissent tous deux des SDK spécifiques à chaque langue et une abondante documentation de démarrage pour vous aider à démarrer, mais l'appel direct à l'API est simple à mettre en œuvre. Ces services peuvent tous deux être utilisés en se connectant simplement à une route API avec le protocole wss:// et en fournissant une clé.
Azure Cognitive Speech Service
wss://region.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?format=simple&language=LANG_CODE
IBM Watson Speech-to-Text
wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=langage_modelIl y a quelques en-têtes supplémentaires à fournir, mais la documentation de chaque service est une ressource utile.
Amazon Transcribe
Je dois admettre que c'est AWS qui a été le plus difficile à mettre en œuvre. La documentation contenait très peu d'exemples et le SDK ne semblait pas du tout prendre en charge les services de streaming. Lorsque j'ai commencé à construire l'intégration d'Amazon Transcribe, HTTP/2 était le seul protocole disponible et nécessitait de signer chaque requête envoyée au serveur. Étant un peu novice avec AWS en général, cela s'est avéré assez délicat pour moi.
C'est lorsque les relations avec les développeurs prennent le dessus que l'histoire prend un tournant décisif, Brandon West est intervenu et a écrit un exemple de code utilisant une connexion WebSocket, ce qui m'a sauvé. L'exemple de code a rendu les choses beaucoup plus accessibles, mais le processus d'autorisation général et la signature des appels rendent Amazon Transcribe un peu plus difficile à mettre en œuvre en général.
Ici, j'ai utilisé le paquetage WebSocket Node et j'ai créé une URL signée pour créer la connexion.
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 est un excellent service, mais si vous n'y êtes pas habitué, la courbe d'apprentissage peut s'avérer difficile.
Amazon Transcribe Documentation
Coût
Tous les fournisseurs de services proposent une version allégée ou gratuite pour commencer. Le coût de base dépend de la durée de la transcription audio. Les fournisseurs utilisent des incréments de temps différents, c'est pourquoi je les ai normalisés dans le tableau ci-dessous pour vous aider à comprendre précisément la différence de coût.
| 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 |
Récapitulation
La transcription en continu est un excellent moyen de fournir des informations en temps réel. Chacun des quatre principaux fournisseurs de services en nuage propose d'excellentes offres avec des services de transcription vocale fiables et précis. L'utilisation de Nexmo comme flux audio est une extension intéressante qui permet à vos clients de bénéficier d'expériences de communication plus approfondies.
Je recommande vivement Google Speech-to-text comme un choix solide. Le prix est compétitif et le service est robuste et fiable. Il est facile de l'installer et de commencer à l'utiliser immédiatement, ce qui est un avantage.
Si vous souhaitez essayer l'un ou l'autre de ces services, l'équipe Nexmo Extend a créé un code d'exemple pour vous aider à démarrer.
Partager:
Kelly J. Andrews est un défenseur des développeurs pour Nexmo. Il bricole des ordinateurs depuis plus de 30 ans et a utilisé BASIC pour la première fois à l'âge de 5 ans.
Ce n'est que lorsqu'il a créé sa première page web en 1997 et qu'il a essayé JavaScript pour la première fois qu'il a trouvé sa véritable vocation. Kelly se bat désormais pour JavaScript, un code testable et une livraison rapide.
Vous pouvez le trouver en train de chanter au karaoké, de faire de la magie ou d'encourager les Cubs et les Fighting Irish.