; #FONCTION GSPEECH# ===================================================================================; ; Nom ...........: GSpeech ; ; Version .......: 1.0 ; ; Description ...: Permet de d'utiliser la synthèse vocale de google SANS API ; ; Syntax ........: _GSpeech($gLang,$gTxt[,$gPause]) ; ; Paramètres ....: $gLang - Langue du texte à faire parler ; ; ! CODE LANGUE : http://sites.google.com/site/tomihasa/google-language-codes ; ; af, am, ar, az, be, bg, bh, bn, br, bs, ca, co, cs, cy, da, ; ; de, el, en, eo, es, et, eu, fa, fi, fo, fr, fy, ga, gd, gl, ; ; gn, gu, ha, hi, hr, hu, hy, ia, id, is, it, iw, ja, jw, ka, ; ; kk, km, kn, ko, ku, ky, la, ln, lo, lt, lv, mg, mi, mk, ml, ; ; mn, mo, mr, ms, mt, ne, nl, nn, no, oc, om, or, pa, pl, ps, ; ; qu, rm, rn, ro, ru, rw, sd, sh, si, sk, sl, sn, so, sq, sr, ; ; st, su, sv, sw, ta, te, tg, th, ti, tk, tl, to, tr, tt, tw, ; ; ug, uk, ur, uz, vi, xh, yi, yo, zu. ; ; $gTxt - Texte à faire parler ; ; $gPause - Pause le script si 1 ; ; Auteur ........: Ethneldryt ; ; Contributeur ..: Iste - Fonction URIEncode pour convertir les caractères spéciaux ; ; Remarque ......: Attention, une connexion à internet est requise pour utiliser cette fonction ; ; Lien de l'UDF .: http://autoitscript.fr/forum/viewtopic.php?f=6&t=9595 ; ; ======================================================================================================; #include DirCreate(@TempDir & "\gspeech") OnAutoItExitRegister("_Clean") Func _GSpeech($gLang,$gTxt,$gPause = 0) $random = Random(0,10000,1) $gTxt = _URIEncode($gTxt) InetGet("http://translate.google.com/translate_tts?ie=UTF-8&tl=" & $gLang & "&q=" & $gTxt,@TempDir & "\gspeech\" & $random & ".mp3",1) $gSound = _SoundOpen(@TempDir & "\gspeech\" & $random & ".mp3") _SoundPlay($gSound,$gPause) EndFunc Func _URIEncode($sData) ; Prog@ndy Local $aData = StringSplit(BinaryToString(StringToBinary($sData,4),1),"") Local $nChar $sData="" For $i = 1 To $aData[0] $nChar = Asc($aData[$i]) Switch $nChar Case 45, 46, 48 To 57, 65 To 90, 95, 97 To 122, 126 $sData &= $aData[$i] Case 32 $sData &= "+" Case Else $sData &= "%" & Hex($nChar,2) EndSwitch Next Return $sData EndFunc Func _Clean() DirRemove(@TempDir & "\gspeech",1) EndFunc