Articles du jour

Posted on: décembre 3, 2014 | 0 Commentaires | Tags:

  • Part de marché des services fixes de haut débit en France – 3ème trimestre 2014
    L’ARCEP, l’autorité de régulation des communications électroniques et postales, vient de publier les derniers chiffres concernant le marché des télécommunications électroniques des services fixes haut et très haut débit pour le troisième trimestre 2014. Le marché est en constante croissance d’une valeur annuelle de +4% (+ 1 million de lignes sur 1 an).  L’ARCEP insiste sur le fait que la croissance est soutenue par les liaisons à très haut débit (liaisons supérieures à 30Mbits/s) dont la croissance est de 34% en un an. Le nombre d’abonnements internet à haut et très haut débit sur réseaux fixes inclut les abonnements xDSL, câble, fibre optique, BLR, satellite et wifi. Enfin, sont comptabilisés comme des abonnements très haut débit les accès à internet dont le débit crête descendant est supérieur ou égal à 30 Mbit/s quelle que soit la technologie support. Si on analyse ces chiffres avec les éléments déclarés par les opérateurs, on obtient les parts de marché suivantes pour le troisième trimestre 2014 (La catégorie « autres » est calculé en prenant le total ARCEP défalqué des totaux publiés par les  opérateurs : Orange, Free, SFR, Bouygues et Numéricable) : Orange : 40,00 % (croissance annuelle de 2,1%) Free : 22,61 % (croissance annuelle de 4%) SFR : 20,32 % (croissance annuelle de 0,2%, mais décroissance depuis début 2014 !) Bouygues Télécom : 9,03% (croissance annuelle de 19,5%) Numéricable : 4,21 % (croissance annuelle de 6,3%) Autres : 3,83 % (croissance annuelle de 16,3%) Il fat noter la décroissance de SFR qui s’explique par la revente à Numéricable (qui fait de cette dernière le 2ème acteur sur la place) et la poussée de Bouygues Télécom (en recrutement net au 3ème trimestre est premier avec 378 lignes, devant Free avec 225 et Orange avec 212).
  • Text to speech : comment utiliser festival, eSpeak et GoogleTTS avec asterisk, solution de téléphonie open source
    Introduction Il est souvent indispensable de diffuser des messages spécifiques aux appelants, des messages pouvant changer selon le contexte de l’appel (numéro appelé, numéro de compte saisi …). Il est difficile de prévoir tous les cas et d’enregistrer en studio à l’avance toutes les éventualités sans même parler du coût. Je vous propose d’utiliser un service de google permettant de générer un signal audio à partir d’un texte. Nous allons voir dans cet article 3 moyens différents de réaliser de la synthèse vocale pour notre serveur asterisk. Note : toutes les commandes sont pour une machine fonctionnant sous debian/ubuntu, mais vous pouvez simplement les transposer pour un autre système d’exploitation linux. Qu’est-ce que le text to speech ? Text to speech ou TTS pour les intimes, est une technique informatique permettant de transformer un texte écrit en parole artificielle, autrement dit, c’est de la synthèse vocale. Je vous renvoie sur wikipedia afin de découvrir l’histoire et les techniques de la synthèse vocale. Il existe plusieurs solutions libres de synthèse vocale : Festival et eSpeak sont les 2 les plus connues fonctionnant sous linux. Nous allons voir l’installation et l’usage sous asterisk. Une autre solution non libre, mais gratuite et qui à l’avantage de la simplicité : GoogleTTS. GoogleTTS est un service en ligne de Google (ah bon ?) réalisant de la synthèse vocale et qui est de plus, de bonne qualité. Solution de synthèse vocale Festival Installation L’installation est très simple, le paquet étant disponible dans les repos de Debian et Ubuntu mais aussi de Centos. apt-get install festival speech-tools Ensuite, vous devez modifier le fichier festival.scm afin de permettre à asterisk de se connecter au serveur festival. Le fichier est situé dans le répertoire /usr/share/festival/ (define (tts_textasterisk string mode) « (tts_textasterisk STRING MODE) Apply tts to STRING. This function is specifically designed for use in server mode so a single function call may synthesize the string. This function name may be added to the server safe functions. » (let ((wholeutt (utt.synth (eval (list ‘Utterance ‘Text string))))) (utt.wave.resample wholeutt 8000) (utt.wave.rescale wholeutt 5) (utt.send.wave.client wholeutt))) Ensuite, il faut démarrer le serveur festival avec la commande suivante : festival –server 2>&1 > /dev/null & Bine entendu, il est souhaitable de l’ajouter au fichier /etc/rc.local afin que le serveur festival soit lancé au démarrage de la machine. Maintenant, nous devons paramétrer asterisk afin de lui indiquer où joindre notre serveur festival. Pour cela il faut modifier le fichier /etc/asterisk/festival.conf comme ci-dessous : [general] host=localhost port=1314 ;usecache=yes ;cachedir=/var/lib/asterisk/festivalcache/ festivalcommand=(tts_textasterisk « %s » ‘file)(quit)\n Maintenant, nous allons vérifier que le module est bien chargé par asterisk en entrant cette commande en cli : CLI> core show application festival -= Info about application ‘Festival’ =- [Synopsis] Say text to the user. [Description] Connect to Festival, send the argument, get back the waveform, play it to the user, allowing any given interrupt keys to immediately terminate and return the value, or ‘any’ to allow any number back (useful in dialplan). [Syntax] Festival(text[,intkeys]) [Arguments] Not available [See Also] Not available Si vous obtenez une sortie comme celle-ci , c’est parfait, sinon chargez le module manuellement : CLI> module load app_festival.so Utilisation Nous allons maintenant le tester en modifiant le fichier /etc/asterisk/extensions.conf : ;Festival demo exten => s, 1, Answer() exten => s, n, Festival(‘Welcome! Your phone number is ${CALLERID(num)}.’) exten => s, n, Hangup() Le résultat est acceptable sans être exceptionnel. Je ne vous ai pas présenté l’installation de la langue française, car la qualité n’est pas suffisante en regard des autres solutions que je vais présenter dans la suite de ce post. Mais comme festival est une solution open source nativement intégrée avec asterisk, il me semblait important de vous en parler. Solution de synthèse vocale eSpeak Installation Tout d’abord, il faut installer les fichiers de développement d’asterisk. Ensuite, il est d’installer eSpeak. Pour nous simplifier la vie, nous allons utiliser les paquets, mais pour un serveur de production je vous encourage à installer eSpeak via les sources. apt-get install espeak apt-get install asterisk-espeak L’installation via les paquets est maintenant terminée. Utilisation Nous allons voir l’utilisation de eSpeak au sein du dialplan asterisk. La commande à utiliser est Espeak et est assez simple à utiliser. Voici la syntaxe : Espeak(text[,intkeys,language]) Le texte est entre guillemets, intkey peut prendre 2 valeurs, soit any, soit une des touches du téléphones et language la langue souhaitée. Voici un exemple : ;eSpeak Demo exten => 1234,1,Answer() ;;Play mesage using default language as set in espeak.conf exten => 1234,n,Espeak(« This is a simple espeak test in english. »,any) ;;Play message in Spanish exten => 1234,n,Espeak(« Esta es una simple prueba espeak en español. »,any,es) ;;Play message in Greek exten => 1234,n,Espeak(« Αυτό είναι ένα απλό τέστ του espeak στα ελληνικά. »,any,el) ;;Read a text file from disk (relative to the channel language) ;;and play it with espeak using the asterisk channel language. exten => 1234,n,ReadFile(MYTEXT=/path/${LANGUAGE}/myfile,200) exten => 1234,n,Espeak(« ${MYTEXY} »,any,${LANGUAGE}) exten => 1234,n,Hangup() Le logiciel est sous licence GPL, vous êtes donc libre de l’utiliser et bien entendu de l’améliorer. Solution de synthèse vocale GoogleTTS Installation Afin d’utiliser GoogleTTS sur notre serveur asterisk, il est nécessaire que notre serveur ait un accès à internet (le script doit faire appel aux serveurs de Google) mais il nécessite aussi l’installation des paquets suivants : apt-get install perl libwww-perl sox mpg123 Ensuite, nous allons utiliser un script AGI développer par Zaf, asterisk-googletts. Le script est développé en PERL. Premièrement, localisez l’emplacement du dossier agi-bin afin d’y installer le script. Pour cela, vérifiez la variable astagidir dans le fichier asterisk.conf . Ensuite téléchargez le fichier googletts.agi dans ce répertoire : wget https://raw.github.com/zaf/asterisk-googletts/master/googletts.agi chmod +x googletts.agi Maintenant, vous avez terminé l’installation !. Utilisation L’utilisation est extrêmement simple. Il suffit de faire un appel agi afin d’utiliser la synthèse vocale. Voici un exemple simple : ;DEMO GoogleTTS exten => S,1,Answer() exten => s,n,agi(googletts.agi, »Asterisk vous parle enfin. »,fr) exten => s,n,Hangup() Un peu d’explication : googgletts.agi accepte plusieurs variables (4) que nous allons détailler : La première contient le texte. L’exemple est parlant ! La seconde contient la langue qui doit être utilisée (par défaut en-US). La liste est très longue. Les autres variables sont optionnelles : 3ème variable : elle peut prendre soit la valeur “any” ou n’importe quel chiffre ou # ou * . Quand un de ces éléments est saisi par l’appelant sur son clavier téléphonique, la lecture du texte est arrêtée. 4ème variable correspond à la vitesse de lecture (par défaut la valeur vaut 1). Vous pouvez accélérer la lecture en utilisant par exemple cette valeur 1.2 . L’utilisation est assez simple et le résultat est convaincant. La communication avec les serveurs de Google se fait en clair, mais il est possible d’utiliser une connexion cryptée (pour cela, il faut modifier le script PERL. Conclusion Nous avons vu 3 solutions différentes afin de réaliser de la synthèse vocale sous asterisk. Sachez qu’il en existe d’autres gratuites ou payantes de différente qualité. A part festival dont la qualité me semble juste, eSpeak et GoogleTTS apporte une qualité suffisante pour la plus part des installations. Quelle solution utilisez-vous ?

Digest powered by RSS Digest

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>