PROCEDE DE DOUBLAGE DE MESSAGES VOCAUX PAR DES MESSAGES TEXTUELS DANS UN RESEAU DE COMMUNICATION PAR
PAQUETS
La présente invention concerne un procédé de doublage de messages vocaux par des messages textuels.
L'invention trouve une application particulièrement avantageuse dans le domaine des communications interpersonnelles audio qui ont lieu sur un réseau de communication à commutation de paquets, filaire ou sans fil, ou, plus généralement, tout réseau qui permet la transmission de données numériques en mode paquet.
Dans ce contexte, il existe des services automatiques qui fournissent des informations à la demande d'un utilisateur, tels que les répondeurs vocaux interactifs, qui sont une extension à la téléphonie numérique, VoIP par exemple, des services audiotels ou assimilés connus sur les réseaux téléphoniques commutés.
Il faut cependant signaler que l'invention n'est pas limitée aux seuls échanges entre le terminal d'un utilisateur et un serveur vocal accessible directement par un numéro bien identifié, mais qu'elle s'étend également aux échanges avec des éléments de service vocal vers lesquels l'utilisateur peut être transféré à travers une chaîne de communication initialisée par un serveur vocal.
L'objet de la présente invention est de pouvoir doubler les messages vocaux émis par un élément de service vocal par des messages textuels, lesquels sont le plus souvent des mini-messages écrits apparaissant simultanément avec la réception des messages vocaux sur l'afficheur du terminal de l'utilisateur. Bien que le terminal puisse être de type quelconque, on comprendra que l'invention s'applique de préférence aux terminaux disposant de la fonction dite « mains libres », aux terminaux de visiophonie,
etc., et plus généralement aux terminaux permettant à leur utilisateur de pouvoir en même temps écouter des messages vocaux et lire des messages textuels.
Dans le domaine de la communication par VoIP par exemple, on connaît de l'état de la technique des procédés applicables au problème de la présentation simultanée d'un message textuel et du message vocal associé.
Une première solution consiste à négocier, lors de l'établissement de l'appel, un canal média supplémentaire dévolu à la transmission de données textuelles. Dans le cadre du protocole RTP (Real-time Transfer Protocol, RFC 3350), le flux de données textuelles peut se conformer au standard de « charge utile » défini dans le document RTP Payload for Text Conversation (RFC 2793).
Une deuxième solution consiste à insérer les données textuelles dans le chemin de signalisation en exploitant certaines possibilités de transport de données offertes par le protocole de signalisation. Un exemple de cette technique dans le cas du protocole Internet SIP est décrit dans le brevet américain n° 6,757,732.
Ces procédés de doublage connus font cependant apparaître un certain nombre d'inconvénients. La solution consistant à créer un flux média supplémentaire véhiculant les données textuelles requiert que le terminal, tout comme l'élément de service vocal, puisse gérer plusieurs sessions de données pour chaque type de transmission. De plus, des éléments de réseau comme les pare-feu devront être configurés pour laisser passer deux flux média au lieu d'un seul. Enfin, des moyens de synchronisation doivent être prévus afin de présenter le doublage textuel à l'instant où est présenté le message vocal associé. Ceci peut nécessiter que les données textuelles soient stockées dans l'élément de service vocal accompagnées d'informations temporelles, comme des estampilles de temps relatives aux échantillons vocaux qui constituent le message principal.
La seconde solution impose, par nature, que les données textuelles transitent sur le chemin de signalisation, en suivant donc la route établie dans le réseau par les messages d'établissement d'appel. On peut observer que,
sur un plan architectural, cette solution mélange la signalisation proprement dite qui traite de la gestion de l'appel, et son contenu, à savoir les données textuelles elles-mêmes. On est donc naturellement amené à penser que cette solution est relativement complexe car mélangeant dans un même automate d'états des actions de gestion et de contenu. De plus, ce procédé dépend étroitement du protocole de signalisation choisi (H.323, SIP, MGCP,...), et, par conséquent, une implantation selon un type de signalisation ne pourra s'étendre à une signalisation d'un autre type. Enfin, il faut également souligner que, dans la mesure où les données média suivent un chemin plus direct car ne traversant pas les équipements de signalisation, des problèmes de délai d'acheminement variable entre les données textuelles et vocales sont à prévoir, entraînant nécessairement des difficultés quant à la synchronisation dans la présentation des messages.
Aussi, un problème technique à résoudre par l'objet de la présente invention est de proposer un procédé de doublage de messages vocaux par des messages textuels, lesdits messages étant émis par un élément de service vocal vers un terminal à travers un réseau de transmission de données numériques en mode paquet dans lequel un canal transportant un protocole de transmission est utilisé pour l'émission des messages vocaux, qui permettrait notamment d'éviter l'utilisation trop spécifique du chemin de signalisation pour le transport des messages textuels, tout en évitant l'ouverture d'un flux média supplémentaire dédié aux seuls messages textuels.
La solution au problème technique posé consiste, selon la présente invention, en ce que, un protocole de contrôle de transmission étant associé audit protocole de transmission, lesdits messages textuels sont émis vers le terminal dans un canal transportant ledit protocole de contrôle de transmission.
Ainsi, on comprend que le procédé conforme à l'invention permet le transfert des messages textuels sans avoir à ouvrir un nouveau canal de flux média, les messages textuels utilisant le même chemin que les messages vocaux, ce qui évite en particulier de reconfigurer les pare-feu de manière à laisser passer ce canal supplémentaire. Par ailleurs, la solution proposée par l'invention est indépendante du protocole de signalisation utilisé. Il est même possible dans ce cas de basculer d'un protocole de signalisation à un autre.
Selon l'invention, ledit protocole de communication est le protocole RTP. Ce protocole est conçu pour transporter des flux numériques sous forme de paquets de données accompagnées de leurs estampilles temporelles. Lorsqu'un canal de transmission RTP est établi, un canal secondaire, transportant le protocole de contrôle de transmission RTCP (Real-time Transport Control Protocol) est également mis en place. C'est ce canal RTCP que l'invention utilise pour le transport des messages textuels dans des conditions pratiques qui seront expliquées plus loin.
Dans un mode de mise en œuvre avantageux, l'invention prévoit que, lors d'une phase d'initialisation, le terminal émet vers ledit élément de service vocal un message de notification d'aptitude à recevoir des messages textuels de doublage. Cette disposition permet d'informer l'élément de service vocal que le terminal avec lequel il est en communication est capable de recevoir et de traiter des messages textuels de doublage. Dans cette réalisation, ledit élément de service vocal n'émet de messages textuels de doublage que s'il a reçu un message de notification de la part du terminal.
Il est également prévu par l'invention que ledit message de notification est émis périodiquement. On assure de cette manière que la perte dans le réseau d'un message de notification n'entraîne pas l'abandon du procédé de doublage.
Du point de vue de l'élément de service vocal, le procédé de doublage selon l'invention est activé dès réception d'un message de notification, les messages de notification subséquents sont alors tout simplement ignorés. Le serveur reste donc en veille tant qu'aucun message de notification n'a pas encore été reçu. Néanmoins, le serveur commence à envoyer le message vocal, mais n'envoie pas le message textuel tant qu'il n'a pas reçu de message de notification. Si le terminal ne met pas en œuvre le procédé par l'envoi d'un message de notification, aucun doublage textuel n'aura lieu pendant toute la durée de la communication. En variante, l'invention propose que l'émission périodique dudit message de notification soit interrompue sur réception par le terminal d'un message textuel de doublage. Il est ainsi possible de réaliser une économie de bande passante en arrêtant l'émission de messages de notification devenus
inutiles. Cependant, l'envoi périodique de messages de notification est recommandé lors de transferts de la communication d'un élément de service vocal à un autre afin de maintenir informés tous les éléments de la chaîne.
Selon un mode d'exécution de l'invention, lesdits messages vocaux et lesdits messages textuels associés sont émis simultanément. Les paquets vocaux et textuels envoyés peuvent alors être envoyés simultanément, à moins que, de préférence, l'émission des messages textuels précède rémission des messages vocaux associés. Dans ce cas, les paquets textuels sont émis en premier, immédiatement suivis des paquets vocaux. L'avantage de ce mode d'émission est qu'il permet au terminal de revoir les messages textuels avant les messages vocaux et donc de pouvoir décider du moment de l'affichage des messages textuels en fonction de la réception des messages vocaux.
Dans ce contexte, la synchronisation en réception entre les messages vocaux et textuels peut être améliorée si, comme le préconise l'invention, l'émission des messages textuels précède l'émission des messages vocaux associés d'une durée de temporisation donnée.
De manière à rendre plus fiable le procédé conforme à l'invention vis à vis d'éventuelles pertes de messages sur le réseau, il est prévu que les messages textuels sont émis périodiquement pendant l'émission d'un message vocal associé. Ainsi, on assure qu'au moins un message textuel sera bien reçu par le terminal même si certains d'entre eux sont perdus.
Enfin, selon un mode de réalisation particulièrement avantageux du procédé de doublage conforme à l'invention, un message d'acquittement est émis par le terminal vers l'élément de service vocal sur réception d'un message textuel de doublage. On verra en effet plus loin en détail que cette disposition permet d'apporter une solution tout à fait satisfaisante aux problèmes liés à la synchronisation et à la perte de messages.
On peut signaler dès à présent que la synchronisation des messages est assurée du fait que, selon l'invention, un message vocal est émis par l'élément de service vocal sur réception d'un message d'acquittement.
De même, la perte éventuelle de messages est prise en compte si, comme le prévoit l'invention, ledit message textuel est réémis périodiquement par l'élément de service vocal jusqu'à réception d'un message d'acquittement.
L'invention concerne également un terminal remarquable en ce qu'il comprend des moyens pour émettre des messages de notification.
Ledit terminal est d'autre part remarquable en ce qu'il comprend des moyens pour émettre des messages d'acquittement.
L'invention concerne également un élément de service vocal remarquable en ce qu'il comprend des moyens pour émettre des messages textuels de doublage sur réception d'un message de notification du terminal.
Ledit élément de service vocal est d'autre part remarquable en ce qu'il comprend des moyens pour émettre des messages vocaux sur réception d'un message d'acquittement du terminal.
Ledit élément de service vocal est encore remarquable du fait qu'il comprend des moyens pour réémettre des messages textuels de doublage jusqu'à réception d'un message d'acquittement du terminal.
La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. La figure 1 est un schéma montrant les échanges entre un terminal et un élément de serveur vocal lors de l'exécution du procédé de doublage conforme à l'invention.
La figure 2 représente le schéma de la figure 1 avec répétition du message de notification. La figure 3 représente le schéma de la figure 1 avec perte du message textuel.
La figure 4 représente le schéma de la figure 1 avec perte du message d'acquittement.
La figure 5 est un exemple de codage du message NOTIF dans un paquet APP du protocole RTCP.
La figure 6 est un exemple de codage du message TEXT dans un paquet APP du protocole RTCP.
La figure 7 est un exemple de codage du message ACK dans un paquet APP du protocole RTCP.
Les figures 1 à 4 concernent un procédé de doublage par des messages textuels de messages vocaux émis par un élément de service vocal SERV vers un terminal TR. Les messages textuels seront désignés messages TEXT dans la suite de la description.
Le transport des messages vocaux est effectué à travers un canal d'un protocole de transmission dans un réseau de commutation de paquets. Ce protocole peut être par exemple le protocole RTP mentionné plus haut, Les messages TEXT, ainsi que les autres messages associés au processus de doublage comme les messages de notification, désignés messages NOTIF et les messages d'acquittement, désignés messages ACK, sont quant à eux transportés dans un canal de contrôle de transmission, appelé RTCP dans le cas du protocole RTP. On rappelle que les messages échangés dans ce canal de contrôle sont les suivants (RFC3550) :
- message SDES : Source DEScription. Il contient les informations qui identifient et qui caractérisent une source de données de flux média,
- message SR : Sender Report. Il contient les données statistiques établies par une source ou un émetteur et exploitées par le ou les récepteurs pour ajuster la qualité de service du flux,
- message RR : Receiver Report. Il contient les données statistiques établies par chaque récepteur et exploitées par l'émetteur correspondant pour ajuster sa transmission, - message APP : APPlicatif. Il s'agit d'un message complémentaire pouvant être utilisé par l'application communicante pour véhiculer toute information de contrôle de niveau applicatif,
- message BYE : message émis par une source qui quitte la session de communication. Le procédé de doublage conforme à l'invention consiste en particulier à utiliser les messages APP pour la transmission des messages NOTIF, TEXT et ACK.
Les figures 5 à 7 montrent des exemples de codage de ces messages dans des paquets APP.
Le schéma de la figure 1 montre les étapes du procédé selon l'invention dans le cas d'un fonctionnement standard. Des opérations liminaires COMSETUP et CHANOP provoquant respectivement un établissement de communication et une ouverture de canaux média ne sont pas décrites en détail ici. Ces opérations relèvent en effet de protocoles de signalisation VoIP (H.323, SIP, MGCP,...) connus en eux-mêmes et indépendants de l'invention proprement dite. Lorsque la communication et les canaux média sont établis, le terminal
TR envoie un message RTCP APP contenant un message NOTIF à l'élément de service vocal SERV pour lui indiquer son aptitude à afficher un message TEXT de doublage.
Puis, avant que l'élément de service vocal SERV n'émette un message vocal, celui-ci envoie à destination du terminal TR un message RTCP APP TEXT contenant le texte du message de doublage à afficher.
A la réception de ce message TEXT, le terminal TR répond à l'élément de service vocal SERV par un message RTCP APP contenant un message d'acquittement ACK indiquant audit élément SERV que le message TEXT a été correctement reçu.
Après avoir reçu ce message ACK, l'élément de service vocal SERV peut émettre le message vocal, lequel est alors synchronisé par le terminal TR avec le doublage textuel selon la stratégie d'affichage retenue dans le terminal TR. Le terminal TR peut décider d'afficher le message textuel dès sa réception, sans attendre la réception du message vocal associé, ou, au contraire, retenir le message textuel jusqu'à réception du message vocal, de manière à afficher le message textuel simultanément avec la réception du message vocal.
Afin de mieux gérer la synchronisation des messages, il est possible de mettre en place un mécanisme de référence. Pour chaque message textuel à afficher par le terminal TR, l'élément de service vocal SERV définit un identifiant, lequel est modifié pour le texte suivant, qui est répété par le terminal TR dans le message ACK correspondant. Cet identifiant peut être
incrémenté par le serveur à chaque envoi d'un message TEXT ou à chaque envoi d'un texte différent à afficher. Dans ce dernier cas, si un message TEXT est perdu, le message TEXT réémis a toujours le même identifiant.
La figure 2 présente un mécanisme de réémission périodique du message NOTIF. Après envoi d'un premier message NOTIF, le terminal TR arme une temporisation Tempi . Lorsque celle-ci arrive à échéance, le terminal TR réémet un à nouveau le message NOTIF et relance une nouvelle temporisation Tempi , etc. Ainsi, même si un message NOTIF est perdu, l'élément de service vocal SERV sera néanmoins informé de l'aptitude du terminal TR à traiter le doublage texte. Ce mécanisme de réémission est particulièrement utile dans le cas de l'utilisation d'un protocole de transport peu fiable. Comme cela a déjà été expliqué précédemment, la répétition du message NOTIF peut être arrêtée sur réception d'un premier message TEXT en provenance de l'élément de service vocal SERV avec l'avantage d'économiser de la bande passante mais avec l'inconvénient de rompre la transmission de l'information contenue dans le message NOTIF à travers la chaîne des transferts éventuels de la communication.
La figure 3 présente le mécanisme mis en place pour éviter la perte du message TEXT de doublage textuel. Lorsque l'élément de service vocal SERV envoie un premier message TEXT, il initialise une temporisation Temp2. Si, à la fin de cette temporisation, il n'a pas reçu de message d'acquittement ACK correspondant au message TEXT, il réémet le même message TEXT et relance la temporisation Temp2. Lorsque, par la suite, il reçoit un message ACK, il arrête cette temporisation Temp2 et déclenche l'émission du message vocal associé au message TEXT.
En variante, l'élément de service vocal SERV peut émettre le message TEXT et, simultanément, débuter la transmission du flux média. Dans ce cas, la synchronisation entre le flux média et son doublage texte est plus grossière, mais le procédé est simplifié car ne nécessite plus la mise en oeuvre d'un message d'acquittement ACK.
Cette variante peut être améliorée si l'élément de service vocal SERV émet le message TEXT et, après observation d'un délai de temporisation, débute la transmission du message vocal, sans attendre la réception d'un
acquittement. Dans ce cas, la synchronisation est moins grossière mais le procédé reste simplifié.
La figure 4 présente le mécanisme mis en place pour éviter la perte du message d'acquittement ACK. De la même manière que dans le cas de la perte d'un message TEXT, si le message ACK renvoyé par le terminal TR ne parvient pas à l'élément de service vocal SERV, celui-ci réémet le message RTCP APP TEXT après une temporisation Temp qui peut avoir pour durée celle de la temporisation Temp2. Le mécanisme continue jusqu'à réception par l'élément de service vocal SERV d'un message ACK, auquel cas ledit élément de service vocal SERV émet le message vocal.
Dans cette configuration, si le message ACK est perdu, il peut se produire que le terminal TR présente le message textuel avant que le message ne lui parvienne. L'ordre de grandeur des délais est tel que l'utilisateur humain ne percevra probablement pas de décalage gênant. En effet, le service de doublage ne requiert pas une synchronisation très fine des informations, mais uniquement un comportement analogue à celui d'un sous-titrage audiovisuel par exemple.
D'une manière générale, il faut noter qu'une optimisation des intervalles de retransmission peut se baser sur le fait que les extrémités d'un échange RTP sont capables de calculer une estimation du délai d'aller-retour dans le réseau grâce aux messages SR et RR des échanges RTCP. Cette estimation peut être exploitée pour déterminer la période de retransmission des messages TEXT et ACK.