Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PROCESSING AUDIO DATA ON A NETWORK AND DEVICE THEREFOR
Document Type and Number:
WIPO Patent Application WO/2004/051973
Kind Code:
A1
Abstract:
The invention concerns a method for processing a data flow comprising audio data exchanged over a network between a server (SERV) and at least one telephone terminal, the data flow corresponding to a telephone call transmitted from said terminal during which a user has produced at least one event. Said method comprises the following steps: (a) extracting from the data flow corresponding at each telephone call the audio data (INST2) corresponding to each event, and (b) executing at least one task concerning the extracted audio data (INST2) executable by a software application (AL), the software application being designed to interact with the network using a non specifically audio data transmission protocol. The method further comprises a step (c) which consists in introducing into said software application (AL) at least one instruction (INSTR2') concerning said extracted audio data (INST2) and designed to activate step (b).

Inventors:
GAICHIES LILIAN FRANCOIS (FR)
BEGLIN PASCAL (FR)
BOUTON THOMAS (FR)
NADHIR ZABARIA (FR)
Application Number:
PCT/FR2003/003472
Publication Date:
June 17, 2004
Filing Date:
November 24, 2003
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
STREAMWIDE (FR)
GAICHIES LILIAN FRANCOIS (FR)
BEGLIN PASCAL (FR)
BOUTON THOMAS (FR)
NADHIR ZABARIA (FR)
International Classes:
G10L15/00; H04M3/493; H04M3/56; H04M3/58; H04M7/00; H04Q1/45; (IPC1-7): H04M3/493
Domestic Patent References:
WO2001052477A22001-07-19
WO2001047218A12001-06-28
WO2001069427A22001-09-20
Foreign References:
EP1175074A22002-01-23
EP1178658A22002-02-06
Attorney, Agent or Firm:
Gorree, Jean-michel (65/67 rue de la Victoire, Cedex 9, FR)
Download PDF:
Claims:
REVENDICATIONS
1. Procédé de traitement d'un flux de données comportant des données audio (INST2) échangées sur un réseau entre un serveur (SERV) et au moins un terminal téléphonique, le flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur (UTI) a produit au moins un évènement, ce procédé comprenant : une étape (a) consistant à extraire du flux de données correspondant à chaque appel téléphonique, des données audio (INST2) correspondant à chaque évènement, et une étape (b) consistant à exécuter au moins une tâche relative aux données audio (INST2) extraites et exécutable par une application logicielle (AL), caractérisé par le fait que l'application logicielle (AL) est destinée à interagir avec le réseau en utilisant un protocole de transmission de données non spécifiquement audio, et que le procédé comprend une étape (c) qui comprend l'introduction dans cette application logicielle (AL), par des éléments de programme spécifiques au vocal adjoints à l'application logicielle par un sous module d'insertion, au moins d'une instruction (INST2') relative aux données audio (INST2) extraites et adaptée pour activer l'étape (b).
2. Procédé selon la revendication 1, dans lequel l'application logicielle (AL) est écrite dans un langage, et dans lequel les éléments de programme spécifiques au vocal adjoints à l'application logicielle sont écrits dans le mme langage.
3. Procédé selon la revendication 1 ou la revendication 2, dans lequel l'évènement est produit par l'appui par l'utilisateur (UTI) sur au moins une touche de terminal téléphonique.
4. Procédé selon l'une des revendications précédentes dans lequel l'événement est produit par la diction d'une commande vocale prononcée par l'utilisateur (UTI), et l'étape (a) comprend une étape consistant à reconnaître la commande vocale prononcée, à l'aide d'une unité de reconnaissance vocale (REC).
5. Procédé selon l'une des revendications précédentes, dans lequel l'application logicielle est adaptée pour exécuter des tâches équivalentes en terme de services. rendus à l'utilisateur (UTI), à la fois via un réseau Internet ou Intranet (RESP) et via un réseau téléphonique (RESC).
6. Procédé selon l'une des revendications précédentes, comprenant en outre une étape (a') consistant à gérer l'évolution de l'appel téléphonique à partir de données non audio extraites du flux de données.
7. Procédé selon l'une des revendications précédentes, comprenant en outre l'étape (d) consistant à émettre sur le réseau, par un protocole de transmission de données audio sur réseau, des données audio (INSTS) de sortie en réponse à au moins un évènement produit par l'utilisateur (UTI).
8. Système de traitement d'un flux de données comportant des données audio (INST2) échangées sur un réseau entre un serveur (SERV) et au moins un terminal téléphonique, le flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur (UTI) a produit, au moins un évènement, ce système comprenant : des moyens d'extraction (MOD1) de données audio (INST2) correspondant à chaque évènement du flux de données correspondant à chaque appel téléphonique, et des moyens d'exécution (MOD2) pour exécuter au moins une tâche relative aux données audio (INST2) extraites et exécutable par une application logicielle (AL), caractérisé par le fait que l'application logicielle (AL) est destinée à interagir avec le réseau en utilisant un protocole de transmission de données non spécifiquement audio, et que le dispositif comprend des moyens d'introduction (SM) dans cette application logicielle (AL), d'au moins une instruction (INST2') relative aux données audio (INST2) extraites et adaptée pour tre lue et exécutée par les moyens d'exécution, les moyens d'introduction (SM) comprenant des éléments de programme spécifiques au vocal adjoints à l'application logicielle.
9. Système selon la revendication 8, dans lequel lesdits moyens d'extraction (MOD1), d'exécution (MOD2) et d'introduction (SM) sont intégrés dans le serveur (SERV) et que ce serveur (SERV) comprend au moins un ordinateur.
10. Système selon la revendication 8 ou 9, dans lequel le serveur (SERV) comporte des moyens de traitement de données numériques compris dans la liste suivante : une unité de reconnaissance vocale (REC) pour reconnaître des commandes vocales prononcées par au moins un utilisateur (UTI), une unité de contrôle d'appel (CONT) pour extraire, du flux de données correspondant à chaque appel téléphonique, des données non audio correspondant à l'appel téléphonique, une unité d'émission (EMI) pour émettre sur le réseau, par un protocole de transmission de données audio sur réseau, des données audio de sortie (INSTS) correspondant à au moins un évènement, une unité de transfert d'appels (TRA) pour gérer les transferts d'appel d'au moins un utilisateur, une unité de lecture (LINST) pour lire au moins une instruction relative aux données audio extraites (INST2'), une unité d'instructions de transfert d'appels (TINST) pour effectuer un transfert d'appels, et une unité d'instructions de mise en conférence (CINST) pour effectuer une mise en conférence d'au moins deux appels à l'aide des données non audio correspondant à chaque appel téléphonique.
11. Système selon l'une des revendications 8 à 10 comprenant en outre une base de données audio (DATA).
12. Programme d'ordinateur pour le traitement d'un flux de données comportant des données audio (INST2) échangées sur un réseau entre un serveur (SERV) et au moins un terminal téléphonique, le flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur (UTI) a produit au moins un évènement, ce programme d'ordinateur comprenant des portions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 7 lorsque ledit programme est exécuté par un ordinateur.
13. Procédé de préparation d'un programme d'ordinateur pour exécuter au moins une tâche relative à des données audio (INST2) extraites d'un flux de données comportant des données audio (INST2) échangées sur un réseau entre un serveur (SERV) et au moins un terminal téléphonique, le flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur (UTI) a produit au moins un évènement, les données audio (INST2) correspondant à cet évènement, caractérisé en ce que ledit programme d'ordinateur est exécutable par une application logicielle (AL) destinée à interagir avec le réseau en utilisant un protocole de transmission de données non spécifiquement audio, et en ce que le procédé comprend une étape dans laquelle on adjoint à l'application logicielle (AL) un sous module d'insertion (SM) comprenant des éléments de programme spécifiques au vocal adaptés pour introduire dans l'application logicielle (AL) une instruction (INST2') relative aux données audio (INST2) extraites et adaptée pour activer l'exécution de ladite tâche.
Description:
Procédé de traitement de données audio sur un réseau et dispositif de mise en oeuvre de ce procédé La présente invention est relative aux procédés et aux programmes de traitement de données audio sur un réseau, ainsi qu'aux dispositifs de mise en oeuvre de ces procédés.

Plus particulièrement, l'invention concerne un procédé de traitement d'un flux de données comportant des données audio échangées sur un réseau entre un serveur et au moins un terminal téléphonique, ce flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur a produit au moins un évènement, ce procédé comprenant : - une étape (a) consistant à extraire du flux de données correspondant à chaque appel téléphonique, des données audio correspondant à chaque évènement, et - une étape (b) consistant à exécuter au moins une tâche relative aux données audio extraites et exécutable par une application logicielle.

De tels procédés de l'art antérieur permettent la communication entre un terminal téléphonique et un serveur via un réseau téléphonique commuté public ou privé, fixe ou mobile. Ils correspondent par exemple aux procédés bien connus sous l'acronyme IVR (acronyme de l'expression anglo- saxonne"Interactive Voice Response").

Ces procédés permettent, par exemple, la délivrance d'informations sous forme vocale à un utilisateur ou bien la commande d'opérations à distance à partir d'instructions données par cet utilisateur sous forme de données audio tels que des commandes vocales ou des sons générés lorsque ce dernier presse des touches du clavier de son terminal téléphonique (procédé DTMF, acronyme de l'expression anglo- saxonne"Dual Tone Multi Frequency").

Grâce à ce type de procédé, un utilisateur peut, par exemple, consulter le solde de comptes bancaires, des cours de bourse, consulter ou déposer des messages dans une boîte vocale, etc.

Lors d'un appel téléphonique un flux de données est généré à partir du terminal téléphonique. Ce flux de données comporte par exemple des données d'identification de l'utilisateur ainsi que des données correspondant aux sons émis par l'utilisateur, captés par le micro du terminal téléphonique ou générés par la pression de touches du terminal. Parmi ces sons, certains correspondent à des données audio caractéristiques d'évènements particuliers.

Lorsque ces données audio sont identifiées par un serveur approprié, un programme exécute la tâche correspondante. Par exemple, la prononciation du mot "effacer"par l'utilisateur correspond à un évènement destiné à commander, dans un contexte donné, la tâche consistant à effacer un message dans une boîte vocale.

Dans ces procédés de l'art antérieur, notamment celui décrit dans le document EP 1 175 074, les programmes d'ordinateurs correspondant aux applications IVR sont développés dans des langages spécifiques tels que le TCL (acronyme de l'expression anglo-saxonne Tool Command Language), ou nécessitent l'utilisation d'interpréteurs tels que le VXML (acronyme de l'expression anglo-saxonne Voice eXtensible Markup Language), etc. Ces programmes sont tous exclusivement dédiés aux applications vocales, leur écriture s'effectue exclusivement dans l'un de ces langages et les bases de données compatibles avec ces programmes sont spécifiques à ces applications vocales.

La présente invention a notamment pour but d'ouvrir l'utilisation des procédés de communication de données audio de type IVR à de plus nombreuses sources.

Ce but est atteint par un procédé qui, outre les caractéristiques indiquées ci-dessus est caractérisé par le fait que l'application logicielle est destinée à interagir avec le réseau en utilisant un protocole de transmission de données non spécifiquement audio, et que le procédé comprend une étape (c) qui comprend l'introduction dans cette application logicielle, par des éléments de programme spécifiques au vocal adjoints à l'application logicielle par un sous module d'insertion, au moins d'une instruction relative aux données audio extraites et adaptée pour activer l'étape (b).

Grâce à ces dispositions, on peut utiliser, outre les applications vocales déjà existantes, des applications, ainsi que les bases de données compatibles avec ces applications, déjà développées pour permettre une interaction entre un serveur et un utilisateur autrement qu'en communiquant uniquement des données audio. Ainsi, il est possible d'utiliser des applications et des bases de données développées par exemple pour Internet, ce qui donne accès à de nombreuses sources de services et d'informations déjà existantes.

Ce procédé possède de plus l'avantage que toutes les applications déjà écrites dans le langage interprété pour Internet par exemple, sont immédiatement applicables au domaine du vocal, sans nécessiter d'tre redéveloppées entièrement.

Ce procédé permet de plus d'intégrer toute nouvelle application d'IVR immédiatement dans tout réseau de télécommunications fonctionnant intégralement en mode paquet.

Dans des modes de réalisation préférés de l'invention, on peut éventuellement avoir recours en outre à l'une et/ou à l'autre des dispositions suivantes :

l'application logicielle est écrite dans un langage, et les éléments de programme spécifiques au vocal adjoints à l'application logicielle sont écrits dans le mme langage ; - l'évènement est produit par l'appui par un utilisateur sur au moins une touche de terminal téléphonique ; - l'évènement est produit par la diction d'une commande vocale prononcée par l'utilisateur, et l'étape (a) comprend une étape consistant à reconnaître la commande vocale prononcée, à l'aide d'une unité de reconnaissance vocale ; - l'application logicielle est adaptée pour exécuter des tâches équivalentes en terme de services rendus à l'utilisateur, à la fois via un réseau Internet ou Intranet et via un réseau téléphonique ; - le procédé comporte une étape (a') consistant à gérer l'évolution de l'appel téléphonique à partir de données non audio extraites du flux de données ; - le procédé comporte l'étape (d) consistant à émettre sur le réseau, par un protocole de transmission de données audio sur réseau, des données audio de sortie en réponse à au moins un évènement produit par l'utilisateur.

Selon un autre aspect, l'invention concerne un système de traitement d'un flux de données comportant des données audio échangées sur un réseau entre un serveur et au moins un terminal téléphonique, le flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur a produit au moins un évènement, ce système comprenant : . des moyens d'extraction de données audio correspondant à chaque évènement du flux de données correspondant à chaque appel téléphonique, et

. des moyens d'exécution pour exécuter au moins une tâche relative aux données audio extraites et exécutable par une application logicielle, caractérisé par le fait que l'application logicielle est destinée à interagir avec le réseau en utilisant un protocole de transmission de données non spécifiquement audio, et que le système comprend des moyens d'introduction dans cette application logicielle, d'au moins une instruction relative aux données audio extraites et adaptée pour tre lue et exécutée par les moyens d'exécution, les moyens d'introduction comprenant des éléments de programme spécifique au vocal adjoints à l'application logicielle.

On peut éventuellement avoir recours en outre à l'une et/ou à l'autre des dispositions suivantes : - lesdits moyens d'extraction, d'exécution et d'introduction sont intégrés dans le serveur et ce serveur comprend au moins un ordinateur ; - le serveur comporte des moyens de traitement de données numériques compris dans la liste suivante : . une unité de reconnaissance vocale pour reconnaître des commandes vocales prononcées par au moins un utilisateur, . une unité de contrôle d'appel pour extraire, du flux de données correspondant à chaque appel téléphonique, des données non audio correspondant à l'appel téléphonique, . une unité d'émission pour émettre sur le réseau, par un protocole de transmission de données audio sur réseau, des données audio de sortie correspondant à au moins un événement, . une unité de transfert d'appels pour gérer les transferts d'appel d'au moins un utilisateur, . une unité de lecture pour lire au moins une

instruction relative aux données audio extraites, . une unité d'instructions de transfert d'appels pour effectuer un transfert d'appels, et . une unité d'instructions de mise en conférence pour effectuer une mise en conférence d'au moins deux appels à l'aide des données non audio correspondant à chaque appel téléphonique ; - le système comprend en outre une base de données audio.

Selon un autre aspect, l'invention concerne un programme d'ordinateur pour le traitement d'un flux de données comportant des données audio échangées sur un réseau entre un serveur et au moins un terminal téléphonique, le flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur a produit au moins un évènement, ce programme d'ordinateur comprenant des portions de code de programme pour l'exécution des étapes d'un tel procédé lorsque ledit programme est exécuté par un ordinateur.

Selon un autre aspect, l'invention concerne un procédé de préparation d'un programme d'ordinateur pour exécuter au moins une tâche relative à des données audio extraites d'un flux de données comportant des données audio échangées sur un réseau entre un serveur et au moins un terminal téléphonique, le flux de données correspondant à un appel téléphonique émis depuis ce terminal au cours duquel un utilisateur a produit au moins un évènement, les données audio correspondant à cetévènement, caractérisé en ce que ledit programme d'ordinateur est exécutable par une application logicielle destinée à interagir avec le réseau en utilisant un protocole de transmission de données non spécifiquement audio, et en ce que le procédé comprend une étape dans

laquelle on adjoint à l'application logicielle un sous- module d'insertion comprenant des éléments de programme spécifiques au vocal adaptés pour introduire dans l'application logicielle une instruction relative aux données audio extraites et adaptée pour activer l'exécution de ladite tâche.

D'autres aspects, buts et avantages de l'invention apparaîtront à la lecture de la description de plusieurs de ces modes de réalisations donnés à titre d'exemples non limitatifs.

L'invention sera également mieux comprise à l'aide des dessins sur lesquels : - la figure 1 est un schéma global d'une application IVR mise en oeuvre conformément à l'invention, - la figure 2 est un schéma de fonctionnement du système d'application selon l'invention, - la figure 3 est un schéma de fonctionnement d'un deuxième mode de réalisation du système d'application selon l'invention, et - la figure 4 est un exemple du fonctionnement de l'invention.

Sur ces différentes figures, les mmes références désignent des éléments identiques ou similaires.

La figure 1 est un schéma de principe d'un exemple de service vocal interactif mis en oeuvre conformément à la présente invention.

Un utilisateur UTI ou un groupe d'utilisateurs peut accéder à un réseau téléphonique à commutation de circuits RESC via par exemple un téléphone, ou un ordinateur.

Ainsi, lors d'un appel téléphonique, l'utilisateur UTI produit des sons. Ces sons correspondent par exemple à sa voix ou à des signaux sonores spécifiques de la pression de touches sur le terminal téléphonique. Ces sons

constituent des données audio. Parmi ces données audio, certaines sont représentatives d'évènements particuliers produits par l'utilisateur pour activer un service. Un tel évènement consiste par exemple à prononcer un mot particulier destiné à tre reconnu ou à appuyer sur une touche spécifique du terminal téléphonique qu'il utilise.

A partir du terminal téléphonique, les données audio sont transmises, avec d'autres données de communication (par exemple des données d'identification de l'appel) avec lesquelles elles forment un flux de données, par le réseau téléphonique RESC à une passerelle de média MED qui permet de relier le réseau téléphonique à commutation de circuits à un réseau téléphonique à commutation de paquets RESP et vice versa. Des passerelles de média de ce type sont bien connues de l'Homme du Métier (voir par exemple le document EP 1 175 074). Le flux de données est alors transmis, jusqu'à un système d'application SYST, sur le réseau téléphonique à commutation de paquets RESP en utilisant un protocole de transport ou d'établissement d'appel sur ce type de réseau.

Il s'agit par exemple du protocole SIP (acronyme de l'expression anglo-saxonne"Session Initiation Protocol") qui est un protocole IETF de voix (IETF est l'acronyme de l'expression anglo-saxonne"Internet Engineering Task Force").

Le système d'application SYST est géré par un fournisseur de services. Ces services correspondent à la consultation de bases de données (annuaires, données <BR> <BR> météorologiques, bourse, etc. ) et/ou à la mise en oeuvre d'opérations (téléchargement de sonneries ou de logos pour téléphones mobiles, etc.).

Le flux de données correspond à un ensemble d'informations qui arrivent au fournisseur de services au niveau du système d'application SYST. Ces informations

concernent à la fois les communications établies par un ou plusieurs utilisateurs du service, et un ensemble d'évènements produits par ce ou ces utilisateurs. Ces évènements peuvent tre de tout type, comme par exemple d'appuyer sur une touche donnée d'un terminal téléphonique, ou de cliquer sur un lien donné d'une page Web présentée sur un moniteur d'ordinateur ou autre, pour naviguer dans un menu permettant d'obtenir une information ou d'effectuer une opération donnée.

Le système d'application comporte un premier module MOD1 qui sépare, dans le flux de données, les informations INST1 propres aux communications établies avec chaque utilisateur UTI, et les données audio utiles correspondant aux évènements susceptibles d'activer un ou des services accessibles par l'intermédiaire du serveur. Le premier module MOD1 gère les informations relatives aux communications et traduit, puis transmet, pour un utilisateur UTI donné, des instructions INST2', relatives aux données audio utiles à un deuxième module MOD2. Ce deuxième module MOD2 gère l'interactivité avec l'utilisateur UTI et émet des instructions de sortie INSTS'décrivant une information à fournir à l'utilisateur UTI, en fonction des instructions traduites INST2'qu'il a reçues. Cette information peut, par exemple, tre relative à un message de succès/d'erreur sur la réussite d'une opération, ou relative à une information demandée par l'utilisateur.

Le premier module MOD1 reçoit alors ces instructions de sortie INSTS émises par le deuxième module MOD2, et émet selon le protocole de réseau SIP un ensemble de sons formant la réponse aux évènements produits par l'utilisateur UTI. Un dialogue se crée ainsi entre l'utilisateur UTI et le fournisseur de services, de sorte que non seulement plusieurs évènements peuvent tre émis par l'utilisateur UTI

auxquels une réponse adaptée peut tre fournie par le fournisseur de services, mais de sorte aussi que les caractéristiques de la communication peuvent évoluer au cours du temps. Le premier module MOD1 est utilisé pour gérer l'évolution des caractéristiques de la communication, tandis que le deuxième module MOD2 est utilisé pour gérer la réponse aux diverses requtes de l'utilisateur UTI ou du groupe d'utilisateurs.

Le service consiste par exemple à échanger avec une base de données DATA.

La communication entre le réseau téléphonique à commutation de paquets et le premier module MOD1, ainsi qu'entre les premier MOD1 et deuxième MOD2, s'effectue par exemple selon le protocole SIP. La gestion de l'interactivité au sein du deuxième module MOD2 s'effectue, par exemple, dans un langage PHP (de l'expression anglo- saxonne"Hypertext Preprocessor") javascript ou autre.

Un exemple de système d'application SYST selon l'invention est décrit sur la figure 2. Dans ce système d'application, les évènements correspondent par exemple à des sons générés par la pression de touches d'un terminal téléphonique. Le flux de données parvient du réseau téléphonique à commutation de paquets au premier module MOD1. Le premier module MOD1 comporte essentiellement un contrôleur d'appel CONT et un générateur d'instructions GEN.

Plus particulièrement dans le premier module MOD1, le flux de données est transmis au contrôleur d'appel CONT.

Ce contrôleur d'appel CONT gère l'entrée et la sortie des données échangées entre le réseau téléphonique à commutation de paquets et le premier module MOD1, selon le protocole SIP. Il traite les fonctions d'établissement et de supervision de l'appel vocal. Il gère l'identification unique de l'appel dans le système d'application, et toutes

les fonctions du protocole SIP. Pour un utilisateur donné, il transfère au générateur d'instructions GEN les instructions INST2 concernant les évènements. Ce générateur d'instructions GEN détecte qu'en bout de ligne, l'utilisateur UTI a produit un évènement donné, tel qu'appuyer sur une touche"*"de son téléphone, et traduit cette information correspondant à l'instruction INST2 en une instruction INST2'qu'il transmet au deuxième module MOD2.

Ce deuxième module MOD2 comporte principalement une application logicielle AL écrite dans un langage interprété ou compilé de haut niveau. Cette application logicielle AL peut avoir été développée pour fournir un service via le réseau Internet et n'est donc pas nécessairement adaptée à recevoir des instructions propres au vocal. L'application logicielle est généralement destinée à interagir avec le réseau RESP en utilisant un protocole de transmission de données non spécifiquement audio, par exemple le protocole IP (acronyme de l'expression anglo-saxonne"Internet Protocol"). C'est pourquoi ce deuxième module MOD2 contient de plus, un sous module d'insertion SM. Le module d'insertion SM ajoute si nécessaire des instructions additionnelles INSTA aux instructions INST2'pour pouvoir utiliser dans le code du langage de haut niveau les instructions INST2 qui sont spécifiques au domaine vocal.

Grâce au sous module d'insertion SM, une unité de lecture d'instructions LINST de l'application logicielle est capable de comprendre l'instruction INST2'émise par le générateur d'instructions GEN, et peut ainsi activer des tâches programmées dans le langage de haut niveau développé pour des applications non spécifiques au vocal.

Plus particulièrement, le sous module d'insertion SM se superpose à l'application logicielle AL, et lui adjoint des éléments de programme spécifiques au vocal écrit dans le

code de langage de haut niveau et capables de décoder les instructions INST2'traduites par le générateur d'événements GEN, par exemple par des lignes de commande comprises entre des séparateurs de type <VOCAL> et </VOCAL>. Cet élément peut de plus tre séparé en plusieurs parties réparties sur plusieurs ordinateurs du système d'application, ou mettre en jeu des fonctions système pour se substituer partiellement à lui.

Ainsi, selon un exemple de fonctionnement de l'invention, une application logicielle AL est préalablement programmée, par exemple en langage PHP. Le langage de programmation est recompilé afin de permettre d'utiliser des éléments de programme spécifiques au vocal, tel que par exemple une commande at_prompt (). Une telle commande permet la réception d'un signal DTMF.

Par exemple, dans un cas donné, l'application logicielle préexistante faisait afficher sur l'écran d'ordinateur d'un utilisateur distant un menu dans lequel l'utilisateur pouvait accéder à l'une parmi plusieurs fonctions de l'application logicielle selon un caractère tapé au clavier. En se fondant sur l'application logicielle préexistante, un développeur peut adjoindre l'élément de programme suivant à l'application logicielle : la commande $touche=atprompt (). La variable « touche » (l'instruction INST2') prendra la valeur de la touche pressée par l'utilisateur. On accédera à la fonction correspondante de l'application logicielle selon la valeur de la variable « touche » de mme qu'on y accédait précédemment quand l'utilisateur appuyait sur la touche correspondante de son clavier. Il n'est ainsi pas nécessaire de redévelopper la fonction en question spécifiquement pour l'application IVR, car on peut utiliser la fonction préexistante de l'application logicielle.

En outre, le système peut détecter si l'utilisateur accède à l'application logicielle par téléphone ou autrement, auquel cas la variable « touche » prend soit la valeur fournie par clavier (cet élément de programme préexistant dans l'application logicielle) soit la valeur fournie par téléphone (cet élément de programme étant adjoint dans le sous-module SM).

L'application logicielle AL peut ainsi traiter ces instructions INST2'et fournir la réponse à l'évènement produit par l'utilisateur UTI.

L'application logicielle AL en langage de haut niveau n'étant pas nécessairement développée pour fournir une information spécifique au domaine du vocal, il est éventuellement nécessaire de repasser par le sous module d'insertion SM pour fournir via une unité d'envoi d'instructions d'émission de sons EINST, une instruction INSTS'qui est alors transmise à une unité d'émission de sons EMI, dans le premier module MOD1. Eventuellement, des instructions additionnelles INSTA'sont ajoutées aux instructions INSTS'. L'unité d'émission de sons EMI peut, en fonction des instructions INSTS'aller chercher dans une base de données (non représentée) des éléments de sons, et les encoder afin de transmettre au contrôleur d'appel CONT les éléments de sons encodés à transmettre sur le réseau téléphonique. Le contrôleur d'appel CONT récupère ces éléments de sons codés, et en fonction de l'identité de l'utilisateur UTI, transmet à cet utilisateur les informations INSTS relatives à l'évènement qu'il avait initialement produit.

Ainsi, dans un exemple, l'application logicielle préexistante faisait afficher sur l'écran d'ordinateur d'un utilisateur distant du réseau un message de confirmation du type « Votre message est enregistré ». Le langage de

programmation a été recompilé pour que le développeur puisse adjoindre à l'application logicielle des éléments de programme spécifiques au vocal, tel que par exemple une commande at-play (fichier-son. al). Une telle commande permet de commander la lecture d'un fichier son de type courant.

En se fondant sur l'application logicielle préexistante, un développeur peut adjoindre à l'application logicielle, à l'endroit voulu, un élément de programme comprenant la commande at play (confirmation. al) où le fichier son confirmation. al cite « Votre message est enregistré ».

Bien d'autres commandes peuvent tre adjointes à l'application logicielle dans le cadre de l'invention. On peut en particulier prévoir que, quand un utilisateur distant raccroche son téléphone, on mette à jour des données relatives à cet utilisateur dans une base de données.

A l'aide d'un programme exécutable, par exemple développé en C++, le langage de programmation dans lequel l'application logicielle est développée est modifié pour que le langage de programmation puisse inclure des commandes additionelles telles la commande at_play (fichier. al) ou la commande at_prompt () ou autres. A partir de l'application logicielle préexistante, une application IVR est alors facilement construite, en adjoignant un sous-module SM contenant entre autres les éléments de code de programme adjoints spécifiques au vocal.

La figure 2 représente un exemple simple de système d'application SYST selon l'invention, permettant de renvoyer un ou plusieurs sons à un ou plusieurs utilisateurs UTI en réponse à un évènement produit par le ou les utilisateur (s) UTI.

Le système d'application selon l'invention peut mettre en oeuvre un ensemble d'autres fonctions, telles que celles représentées sur la figure 3.

Comme représenté sur la figure 3, en plus des éléments du système d'application SYST déjà décrits, le système d'application SYST est tout à fait adapté pour permettre à l'utilisateur UTI de générer des évènements non plus exclusivement produits par des pressions sur des touches de téléphone. Il peut également traiter des données correspondant par exemple à des sélections à l'aide d'une souris sur une page d'un document formaté en HTML (acronyme de l'expression anglo-saxonne Hyper Text Markup Language) affiché sur un écran d'ordinateur ou des sons purement vocaux émis par cet utilisateur UTI.

Dans le cas d'instructions vocales, les sons sont captés par exemple sur le terminal téléphonique de l'utilisateur UTI, puis transmis par le réseau téléphonique à une unité de réception de sons URS intégrée au premier module MOD1. Les sons émis par un utilisateur UTI, sont par exemple des mots prononcés par cet utilisateur UTI. L'unité de réception de sons URS peut alors par exemple inclure une unité de reconnaissance vocale REC capable de reconnaître les mots prononcés par l'utilisateur UTI et, en fonction du résultat de cette reconnaissance, de transmettre une instruction INST2'à une unité d'instructions d'enregistrement RINST. Eventuellement, à l'instruction INST2'sont associées des instructions additionnelles INSTA générées par le sous module d'insertion SM, pour que l'unité d'instruction d'enregistrement RINST soit capable de lire cette instruction INST2'via son sous module d'insertion SM.

De manière analogue, ce système d'application SYST peut également gérer des fonctions telles que des transferts d'appels, à l'aide d'une unité de transfert d'appel TRA et d'une unité d'instructions de transferts TINST. Ces fonctions sont mises en oeuvre à partir d'instructions analogues aux instructions INST2'et INSTA déjà décrites. Il

s'agit d'une option qui permet de transmettre au contrôleur d'appel CONT des informations permettant de gérer un transfert d'appel et supportées par le protocole de voix sur le réseau, SIP par exemple.

Le système d'application selon l'exemple décrit ici permet également, et de la mme manière, de mettre en conférence les appels de plusieurs utilisateurs UTI, à leur requte, à l'aide d'une unité de mise en conférence CONF, et d'une unité d'instructions de conférence CINST.

Une alternative à l'exemple de fonctionnement de l'invention décrit plus haut est décrite sur la figure 4. Un utilisateur ou un groupe d'utilisateurs UTI cherche à accéder à un service, tel que l'un des services précités, fourni par un fournisseur de services via un réseau RESC.

L'application logicielle AL capable de répondre à ce service est disposée sur un serveur distant SERV, par exemple à base de processeurs INTEL. Ce serveur fonctionne sous un système d'exploitation WINDOWS, UNIX ou LINUX et comprend, outre le système d'application SYST décrit ci-dessus, un système SYST2 commandant d'autres fonctions du serveur SERV. Le service auquel l'utilisateur UTI souhaite accéder peut tre fourni, sous un format non vocal, par exemple en langage PHP par l'application logicielle AL.

Un évènement généré par un utilisateur UTI, par exemple à l'aide de son combiné téléphonique, est transmis, comme expliqué précédemment, via le réseau téléphonique commuté RESC, à une passerelle de media MED et un réseau à commutation de paquets RESP jusqu'au serveur SERV hébergeant l'application. Dans le présent exemple, le réseau à commutation de paquets RESP est par exemple le réseau Internet. Le serveur SERV est relié au réseau RESP par une interface réseau Ethernet IR classique.

Le flux de données arrivant est, comme explicité

précédemment, traité par un premier module MOD1 qui gère tous les aspects relatifs à la communication, et transmet, au deuxième module MOD2, des instructions INST2'relatives aux évènements générés par l'utilisateur à l'application logicielle AL via le sous module SM, qui transforme ces instructions INST2', par exemple grâce à un logiciel exécutable en C++, en langage PHP 4.2. 2 recompilé afin qu'elles puissent tre intégrées dans l'application logicielle AL qui, elle, est en langage PHP. L'application logicielle AL, en réponse aux instructions INST2'effectue des tâches appropriées. En particulier, une réponse vocale peut tre reconstituée à partir de données qui sont stockées dans la base de données DATA. L'application logicielle AL peut également produire d'autres fonctions notamment en interaction avec d'autres serveurs distants SERV2 et/ou bases de données distantes DATA2 accessibles par Internet, par exemple.

Le deuxième module MOD2 est capable de transmettre en retour au premier module MOD1 des instructions de sortie INSTS'. Le premier module émet directement sur le réseau à commutation de paquets RESP, à l'aide du protocole de voix sur réseau SIP, sous forme de réponse vocale, des informations relatives aux évènements générés par l'utilisateur UTI.

En outre, en fonction du flux de données générées par l'utilisateur UTI, le système SYST2 peut par exemple communiquer des données, propres à l'utilisateur vers la base de données distante DATA2, via le réseau RESP.