https://d226lax1qjow5r.cloudfront.net/blog/blogposts/extending-nexmo-streaming-transcription-dr/E_Extending-Nexmo_Steaming-Transcript_1200x600.jpg

Extension de Nexmo : Comparaison de la transcription en continu

Publié le May 10, 2021

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_model

Il 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:

https://a.storyblok.com/f/270183/384x384/444c073b5e/kellyjandrews.png
Kelly J AndrewsAncien membre de l'équipe

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.