Google TTS CLI
Ik heb een programma in elkaar gezet voor het uitspreken van de door jou opgegeven tekst. Dit gaat allemaal via internet (Google TTS) en er zijn GEEN specifieke software of drivers voor nodig, alleen een actieve internet verbinding!
Google’s TTS API werkt vrij eenvoudig:
http://translate.google.com/translate_tts?tl=[TAAL]&q=[ZIN]
dus voor “hallo wereld” (%20 = spatie):
http://translate.google.com/translate_tts?tl=nl&q=hallo%20wereld
(gebruik CTRL+C, direct linken werkt niet)
GTTS binary v1.0 [Windows]
Getest en werkend op:
– Windows XP 32-bit
– Windows Vista 32/64-bit
– Windows 7 32/64-bit
* Werkt niet op Windows 95 / 98 / ME i.v.m. unicode compile.
Het gebruik van dit programma is als volgt: GTTScli.exe [taal] ["zin"]
[taal] = Nederlands = nl, Engels = en, etc.
[“zin”] = het woord of zin dat uitgesproken dient te worden
Voorbeelden:
GTTScli.exe nl “Hallo Wereld!”
GTTScli.exe en “Hello world!”
Specials:
GTTScli.exe tijd (de huidige tijd)
GTTScli.exe datum (de huidige datum)
GTTScli.exe weer (het weerbericht)
Notes:
* Dit programma maakt gebuik van GOOGLE TTS, zodoende is een actieve internet verbinding vereist voor dit programma!
* Google TTS accepteerd max 100 karakters, daarboven werkt de API niet meer.
* Het voordeel van dit programma is dat er geen speciale en/of extra software geinstalleerd hoeft te worden.
* Het weerbericht komt van de Buienradar API. (http://www.buienradar.nl)
Disclaimer:
Het gebruik van dit programma is op eigen risico!, de auteur is niet verantwoordelijk voor enige schade aan apparaten en computer door gebruik van dit programma!
GTTS source v1.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=GTTScli.ico #AutoIt3Wrapper_outfile=GTTScli.exe #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=N #AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Res_Comment=GTTScli #AutoIt3Wrapper_Res_Description=Google TTS commandline interface #AutoIt3Wrapper_Res_Fileversion=1.0 #AutoIt3Wrapper_Res_LegalCopyright=2012 Phoenix Interactive #AutoIt3Wrapper_Res_Field=Google TTScli interface|Sebastiaan Ebeltjes #AutoIt3Wrapper_Res_File_Add=GTTScli_logo.jpg, rt_rcdata, GTTSCLI_IMG #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ;Klikaan Klikuit commandline interface gemaakt door: Sebastiaan Ebeltjes (Phoenix Interactive) #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include "Resources.au3" #include "XMLDomWrapper.au3" ;Variabelen definieren Global $KopTekst, $BerichtTekst, $BerichtBox Global $GTTScliVersie = "v1.0 (2012-09-30) X86 Win32" Global $GTTSCLITitel = "GTTScli" Global $WeerBestand = @TempDir & "\buienradar_temp.xml" Global $GeluidsBestand = @TempDir & "\gtts_temp.mp3" FileDelete($GeluidsBestand) Global $Taal, $Zin If $CmdLine[0] = 1 Then If $CmdLine[1] = "tijd" Then $12uurstijd = @Hour If @Hour >= 0 Then $DagDeel = "'s nachts" If @Hour >= 6 Then $DagDeel = "'s ochtends" If @Hour >= 12 Then $DagDeel = "'s middags" If @Hour >= 18 Then $DagDeel = "'s avonds" If @Hour >= 12 Then $12uurstijd = @Hour - 12 Spreek("nl", "De tijd is " & $12uurstijd & "uur "& @MIN & " " & $DagDeel) Exit EndIf If $CmdLine[1] = "datum" Then $Maand = "" If @MON = "01" Then $Maand = "Januari" If @MON = "02" Then $Maand = "Februari" If @MON = "03" Then $Maand = "Maart" If @MON = "04" Then $Maand = "April" If @MON = "05" Then $Maand = "Mei" If @MON = "06" Then $Maand = "Juni" If @MON = "07" Then $Maand = "Juli" If @MON = "08" Then $Maand = "Augustus" If @MON = "09" Then $Maand = "September" If @MON = "10" Then $Maand = "Oktober" If @MON = "11" Then $Maand = "November" If @MON = "12" Then $Maand = "December" Spreek("nl", "Het is vandaag " & @MDAY & " " & $Maand & " " & @YEAR) Exit EndIf If $CmdLine[1] = "weer" Then FileDelete($WeerBestand) InetGet("http://xml.buienradar.nl", $WeerBestand, 1) If @error Then Melding("Er is een FOUT opgetreden: ", "kan niet downloaden, geen internet?") _XMLFileOpen($WeerBestand) Global $WeerBerichtTijd = _XMLGetValue("/buienradarnl/weergegevens/verwachting_vandaag/tijdweerbericht") Global $WeerBerichtSamenvatting = _XMLGetValue("/buienradarnl/weergegevens/verwachting_vandaag/samenvatting") Global $WeerBerichtVandaag = _XMLGetValue("/buienradarnl/weergegevens/verwachting_vandaag/tekst") FileDelete($WeerBestand) $WeerBerichtVandaagMod = StringReplace($WeerBerichtVandaag[1], "(Bron: KNMI)", "") $WeerBerichtVandaagMod = StringReplace($WeerBerichtVandaagMod, ".", "") $WeerBerichtVandaagMod = StringReplace($WeerBerichtVandaagMod, ",", "") $WeerBerichtVandaagMod = StringReplace($WeerBerichtVandaagMod, ":", "") $WeerBerichtVandaagMod = StringReplace($WeerBerichtVandaagMod, "(", "") $WeerBerichtVandaagMod = StringReplace($WeerBerichtVandaagMod, ")", "") $WeerBerichtChop = StringSplit($WeerBerichtVandaagMod, " ") Spreek("nl", "Het weerbericht " & $WeerBerichtTijd[1]) Spreek("nl", $WeerBerichtSamenvatting[1]) Global $WeerBerichtDeel = "" For $totaal = 1 to $WeerBerichtChop[0] Step 12 For $woord = 1 to 12 If $woord + $totaal >= $WeerBerichtChop[0] Then ;Het laatste stukje If $WeerBerichtDeel <> "" Then Spreek("nl", $WeerBerichtDeel) Spreek("nl", "einde van het weerbericht") Exit Else $WeerBerichtDeel = $WeerBerichtDeel & " " & $WeerBerichtChop[$woord + $totaal] EndIf Next If $WeerBerichtDeel <> "" Then Spreek("nl", $WeerBerichtDeel) $WeerBerichtDeel = "" Next Spreek("nl", "einde van het weerbericht") Exit EndIf EndIf If $CmdLine[0] > 1 Then If StringLen($CmdLine[2]) > 100 Then Melding("Er is een FOUT opgetreden: ", StringLen($CmdLine[2]) & " karakters, Google accepteert max. 100!") Spreek($CmdLine[1], $CmdLine[2]) Exit Else Melding("Er is een FOUT opgetreden: ", "er zijn geen of te weining commando's opgegeven!") EndIf Exit Func Spreek($Taal, $Zin) InetGet("http://translate.google.com/translate_tts?tl=" & $Taal & "&q=" & URLEncode($Zin), $GeluidsBestand, 1) If @error Then Melding("Er is een FOUT opgetreden: ", "fout bij server/downloaden, geen internet?") SoundPlay($GeluidsBestand, 1) FileDelete($GeluidsBestand) EndFunc Func Melding($KopTekst, $BerichtTekst="") #Region ### START Koda GUI section ### Form=C:\!!\GTTScli_form.kxf $GTTScli = GUICreate("Google TTScli", 302, 299, -1, -1) GUISetBkColor(0xFFFFFF) $GTTScli_logo = GUICtrlCreatePic("", 0, 0, 300, 111, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) $LabelBericht = GUICtrlCreateLabel("", 0, 144, 300, 17, 0) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") GUICtrlSetBkColor(-1, 0xA6CAF0) $LabelKop = GUICtrlCreateLabel("", 0, 128, 300, 17, $SS_CENTERIMAGE) GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif") GUICtrlSetBkColor(-1, 0xFFFBF0) $InfoBox = GUICtrlCreateEdit("", 0, 160, 300, 137, BitOR($ES_AUTOVSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL)) GUICtrlSetData(-1, "") GUICtrlSetFont(-1, 8, 400, 0, "Verdana") GUICtrlSetBkColor(-1, 0xC0DCC0) $VersieLabel = GUICtrlCreateLabel("", 0, 112, 299, 17, $SS_RIGHT) GUICtrlSetFont(-1, 8, 800, 0, "Verdana") GUICtrlSetBkColor(-1, 0xFFFBF0) #EndRegion ### END Koda GUI section ### $BerichtBox = "Het gebruik van dit programma is als volgt:" & @CRLF & @CRLF & _ @ScriptName & " [taal] [" & Chr(34) & "zin" & Chr(34) & "]" & @CRLF & @CRLF & _ "[taal] = Nederlands = nl, Engels = en, etc." & @CRLF & _ "[" & Chr(34) & "zin" & Chr(34) & "] = het woord of zin dat uitgesproken dient te worden" & @CRLF & @CRLF & _ "VOORBEELDEN:" & @CRLF & _ @ScriptName & " nl " & Chr(34) & "Hallo Wereld!" & Chr(34) & @CRLF & _ @ScriptName & " en " & Chr(34) & "Hello world!" & Chr(34) & @CRLF & @CRLF & _ "SPECIALS:" & @CRLF & _ @ScriptName & " tijd (de huidige tijd)" & @CRLF & _ @ScriptName & " datum (de huidige datum)" & @CRLF & _ @ScriptName & " weer (het weerbericht)" & @CRLF & @CRLF & _ "NOTES:" & @CRLF & _ "* Dit programma maakt gebuik van GOOGLE TTS, zodoende is een actieve internet verbinding vereist voor dit programma!" & @CRLF & _ "* Google TTS accepteerd max 100 karakters, daarboven werkt de API niet meer." & @CRLF & _ "* Het voordeel van dit programma is dat er geen speciale en/of extra software geinstalleerd hoeft te worden." & @CRLF & _ "* Het weerbericht komt van de Buienradar API. (www.buienradar.nl)" & @CRLF & _ "* Voor contact, melden van bugs of verbeterideeen etc. stuur een mail naar onderstaand adres:" & @CRLF & @CRLF & _ @ScriptName & " door Sebastiaan Ebeltjes (phoenixinteractive@hotmail.com)" & @CRLF & @CRLF & _ "DISCLAIMER:" & @CRLF & _ "* Het gebruik van dit programma is op eigen risico!, de auteur is niet verantwoordelijk" & @CRLF & _ "voor enige schade aan GTTS apparaten en computer door gebruik van dit programma!" ;Vul de gegevens in de GUI: _ResourceSetImageToCtrl($GTTScli_logo, "GTTSCLI_IMG") GUICtrlSetData($VersieLabel, $GTTScliVersie) GUICtrlSetData($LabelKop, $KopTekst) GUICtrlSetData($LabelBericht, $BerichtTekst) GUICtrlSetData($InfoBox , $BerichtBox) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch Sleep(10) WEnd Exit EndFunc ;Melding Func URLEncode($sData) Local $aData = StringSplit(BinaryToString(StringToBinary($sData,4),1),"") Local $nChar $sData="" For $i = 1 To $aData[0] ConsoleWrite($aData[$i] & @CRLF) $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 |
[#/software/google_tts_cli” ]