Haven OnDemand : reconnaissance vocale

Que les données se présentent sous la forme d'enregistrements dans les centres d’appels, de commandes de recherche vocale comme Siri, ou de discussions (conférences, webinars, etc.), les technologies d'analyse de la parole ont pris de plus en plus d’importance.

Les technologies mises à disposition par Haven OnDemand sont basées sur des algorithmes d’intelligence artificielle, de deep learning et de réseaux de neurones. Ces technologies fournissent une qualité de transcription encore meilleure que les algorithmes statistiques. Elles se fondent sur le traitement de milliers d’heures d’enregistrements pour apprendre les structures présentes dans le langage. Ce processus d’apprentissage automatique produit des modèles linguistiques qui sont ensuite utilisés pour la transcription. L'API Speech Recognition crée une transcription textuelle d’une conversation présente dans une vidéo ou une piste audio. Ce texte peut être ensuite utilisé, par exemple, pour une indexation de ces contenus et fournir des fonctions de recherche et d’analyse sur le contenu des vidéos ou des fichiers audio.

1 - Son fonctionnement

L'entrée est constituée par la source vocale (piste audio, vidéo, etc.). Les formats supportés par l’API sont nombreux :

https://dev.havenondemand.com/docs/ImageFormats.html.

La retranscription fonctionne dans différentes langues et pour des sources audio variées. L’API fonctionne uniquement en mode asynchrone. Vous devrez spécifier la source en entrée (fichier, référence, url), l’intervalle et la langue. Vous aurez plusieurs possibilités comme évoqué plus haut :

  • Pack de langue standard : ar-DE, en-AU, etc.
  • Pack de langue téléphonique : en-GB-tel, fr-FR-tel

L’API retournera une réponse JSON selon un modèle défini.

2 - Exemple d’utilisation

URL de l’API = https://api.havenondemand.com/1/api/async/recognizespeech/v1

Paramètre d’authentification = apikey

Paramètre obligatoire = fichier à traiter / référence d’un document indexé / URL d’une image

Paramètre optionnel = intervalle de segmentation / pack de langue Ce qui donne pour une video :

https-://-www.havenondemand.com/sample-content/videos/hpnext.mp4https://api.havenondemand.com/1/api/async/recognizespeech/v1?url=https://www.havenondemand.com/samplecontent/videos/hpnext.mp4&language=en-US&apikey=votre_apikey

Utilisation de Haven OnDemand REST API

TranscriptContent = null;

var _checkJobStatus = function (jobID) {

  HTTP.post('https://api.idolondemand.com/1/job/status/' + jobID, {

  params: {
   apikey: "Votre API key"
  }

}, function (error, result) {

  if (error) {
    console.log('Error when checking job status : ' + error)
  } else if (result.data.actions[0].result) {

  TranscriptContent = result.data.actions[0].result.document[0].content;
  console.log('Transcript content result : ' + TranscriptContent);
  } else {
    Meteor.setTimeout(function () {
    _checkJobStatus(result.data.jobID)
  }, 2200)

}
})
};

Meteor.methods({
  uploadFile: function (file) {
    var fd = new FormData;

    fd.append('file', {
      contentType: 'audio/wav',
      filename: 'longer.wav',
      data: file
});

var generated = fd.generate();
HTTP.post('https://api.idolondemand.com/1/api/async/recognizespeech/v1', {

  params: {
    apikey: "Your API key"
  },

  headers: generated.headers,
  content: generated.body
}, function (error, result) {

if (error) {
  console.log('Error when posting to Haven OnDemand :' + error);
} else if (result) {
  console.log('Success when posting to Haven OnDemand :' + result.data.jobID);
  _checkJobStatus(result.data.jobID);
}
});
},

  returnTranscriptContent: function () {

  return TranscriptContent;

  }

});

Nous convertissons le Blob dans un fichier multipart / formDate, puis postons à l’API. Nous utilisons la méthode _checkJobStatus pour vérifier si la transcription est prête, en utilisant JobId. Nous avons mis en TranscriptContent avec la valeur du résultat de la tâche. UploadFile est appelé à partir du client, par l'intermédiaire du module _encodeAudio.

Template.home.events({
  'click #record': function () {
    Modules.client.recordAudio({action: 'start'});
  },

  'click #stop': function () {
    Modules.client.recordAudio({action: 'stop'});
  }
});

Nous obtenons une transcription textuelle d'un flux audio enregistré à partir de votre navigateur.

Pour en savoir plus :

https://dev.havenondemand.com/apis/recognizespeech#overview

Les vidéos autour d'Haven OnDemand

  • Ayni (startup) : Haven onDemand Speech-to-text API pour l’apprentissage d’une nouvelle langue.
  • Blink (startup) : Haven onDemand Facial Recognition API pour le speed dating.
  • SocialCapital (startup) : Haven onDemand Concept Extraction API pour le recrutement.
  • Transparent (application) : Haven onDemand Image Recognition API pour le recrutement.
  • Haven onDemand<span"> : présentation de l’API reconnaissance faciale
  • CollabNotes : présentation des APIs Concept & Entity Extraction


Les liens essentiels d’Haven OnDemand