Google рдЕрдиреБрд╡рд╛рдж + Asterisk IVR

рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реЛрдЪрд╛ рдХрд┐ рдХрд┐рд╕ рдмреНрд▓реЙрдЧ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рдпрд╣рд╛рдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЬрдЧрд╣ рдереАред рдпрджрд┐ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╡рд┐рд╖рдп рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ "рд╢ - рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред"

рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╖рдп рдкреВрдЫрд╛ рдЧрдпрд╛ - Google рдЕрдиреБрд╡рд╛рдж рд╕реЗ рд╕рд┐рдВрдереЗрд╕рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ * рдХреЗ рд▓рд┐рдП рдЖрдИрд╡реАрдЖрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛ред


рдФрд░ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рдХреА, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ Google рдХреИрд╕реЗ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмреЛрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ 100 рдЕрдХреНрд╖рд░ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдПрдХ рдЖрдИрд╡реАрдЖрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдкрд╣рд▓реЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ, рдореИрдВрдиреЗ рдЗрд╕ рдЖрд╡рд╛рдЬрд╝ рдХреЛ рдХреИрд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛, рдЗрд╕рдХреА рдЦреЛрдЬ рдореЗрдВ рд▓рдЧрд╛ рд╣реВрдВред рдПрдХ рдЫреЛрдЯреА рдЦреЛрдЬ рдиреЗ рдореБрдЭреЗ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рд▓рд╛ рджрд┐рдпрд╛ translate.google.com/translate_tts?q=&tl=ru
рдореИрдВ рдЙрд╕рдХреЗ рд╕рд╛рде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЯрдХрд░рд╛рдпрд╛ рдФрд░ рдмреЛрд▓реЗ рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдордкреА 3 рдорд┐рд▓рд╛ред рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдкреНрд░реЗрд░рд┐рдд, рдореИрдВрдиреЗ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рднреВрд▓ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред

[utfadm@SIP:/var/lib/asterisk]> wget "http://translate.google.com/translate_tts?q=&tl=ru"
--2011-12-01 13:24:53-- translate.google.com/translate_tts?q=%D1%82%D0%B5%D0%BA%D1%81%D1%82&tl=ru
translate.google.com (translate.google.com)... 173.194.32.225, 173.194.32.234, 173.194.32.235, ...
translate.google.com (translate.google.com)|173.194.32.225|:80... .
HTTP- . ... 403 Forbidden
2011-12-01 13:24:53 403: Forbidden.

--2011-12-01 13:24:53-- translate.google.com/translate_tts?q=%D1%82%D0%B5%D0%BA%D1%81%D1%82&tl=ru
translate.google.com:80.
HTTP- . ... 403 Forbidden
2011-12-01 13:24:53 403: Forbidden.


рддрдм рдкрд╣рд▓рд╛ рдмреБрдорд░ рдореБрдЭреЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЕрдЪреНрдЫреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдирд┐рдЧрдо рдореЗрдВ рдмреЗрд╡рдХреВрдл рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡реЗ wget mp3shechki рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ...

рдЗрд╕рд▓рд┐рдП рд╣рдо рдЦреБрдж рдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗред

[utfadm@SIP:/tmp]> wget -U "Lynx 1.2.3.4" "http://translate.google.com/translate_tts?q=&tl=ru"
--2011-12-01 13:27:22-- translate.google.com/translate_tts?q=%D1%82%D0%B5%D0%BA%D1%81%D1%82&tl=ru
translate.google.com (translate.google.com)... 74.125.232.1, 74.125.232.10, 74.125.232.11, ...
translate.google.com (translate.google.com)|74.125.232.1|:80... .
HTTP- . ... 200 OK
: 0 [audio/mpeg]
: ┬л┬лtranslate_tts?q=\321%82\321%81\321%82&tl=ru┬╗┬╗.

[ <=> ] 0 --.-K/s 0s

2011-12-01 13:27:22 (0,00 B/s) - ┬лtranslate_tts?q=\321%82\321%81\321%82&tl=ru┬╗ saved [0/0]


рд╣рдореНрдо ... рдлрд╝рд╛рдЗрд▓ рдХреА рд▓рдВрдмрд╛рдИ рд╢реВрдиреНрдп рд╣реИред рдФрд░ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ

[utfadm@SIP:/tmp]> wget -U "Lynx 1.2.3.4" "http://translate.google.com/translate_tts?q=text&tl=ru"
--2011-12-01 13:29:59-- translate.google.com/translate_tts?q=text&tl=ru
translate.google.com (translate.google.com)... 74.125.232.2, 74.125.232.11, 74.125.232.12, ...
translate.google.com (translate.google.com)|74.125.232.2|:80... .
HTTP- . ... 200 OK
: 4421 (4,3K) [audio/mpeg]
: ┬л┬лtranslate_tts?q=text&tl=ru┬╗┬╗.

100%[===================================================================================================================>] 4 421 --.-K/s 0s

2011-12-01 13:29:59 (95,5 MB/s) - ┬лtranslate_tts?q=text&tl=ru┬╗ saved [4421/4421]

рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ...

рд╕реЛрдЪреЛ, рд╕реЛрдЪреЛ, рд╕реЛрдЪреЛ ...
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдиреЗрдХреНрд╕ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд░реВрд╕реА рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд░реВрд╕реА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдлрд┐рд░ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ рдХреЛ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд░реВрд╕реА рдЕрдХреНрд╖рд░ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

[utfadm@SIP:/tmp]> /usr/local/bin/wget -U "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5" "http://translate.google.com/translate_tts?q=&tl=ru"
--2011-12-01 13:32:27-- translate.google.com/translate_tts?q=%D1%82%D0%B5%D0%BA%D1%81%D1%82&tl=ru
translate.google.com (translate.google.com)... 173.194.32.225, 173.194.32.234, 173.194.32.235, ...
translate.google.com (translate.google.com)|173.194.32.225|:80... .
HTTP- . ... 200 OK
: 4421 (4,3K) [audio/mpeg]
: ┬л┬лtranslate_tts?q=\321%82\321%81\321%82&tl=ru.1┬╗┬╗.

100%[===================================================================================================================>] 4 421 --.-K/s 0s

2011-12-01 13:32:27 (103 MB/s) - ┬лtranslate_tts?q=\321%82\321%81\321%82&tl=ru.1┬╗ saved [4421/4421]


рдУрд╣, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ ... рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдХрд┐рд╕реА рддрд░рд╣ рдЕрдирд╛рдбрд╝реА рд╣реИ
translate_tts?q=?%82?%81?%82&tl=ru.1
рдЗрд╕рдХреЗ рд╕реБрдзрд╛рд░ рдореЗрдВ, -O рдХреБрдВрдЬреА рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреА, рдФрд░ рдирд╛рдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рддреЛ, рдЕрдм рдЬрдм рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ рдЖрд╡рд╛рдЬ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ *ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ
#!/bin/sh
`ls /var/lib/asterisk/festivalcache/$2.gsm`
if [ $? -eq 1 ]; then
NAME=/var/lib/asterisk/festivalcache/$2
/usr/local/bin/wget -U "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5" "http://translate.google.com/translate_tts?q=$1&tl=ru" -O $NAME.mp3
/usr/local/bin/mpg123 -w "$NAME.wav" "$NAME.mp3"
echo "Converting from wav to gsm"
/usr/local/bin/sox -t wav "$NAME.wav" -r 8000 -c1 -t gsm "$NAME.gsm"
rm $NAME.mp3
rm $NAME.wav
fi

рдЗрд╕ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рджреВрд╕рд░рд╛ рдЬреЛ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рджреВрд╕рд░реЗ рд▓реЙрдиреНрдЪ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдкреВрд░реНрдг рдкрде рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╣рдо Google рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдордкреА рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрд░реЛрдз рджреЗрддреЗ рд╣реИрдВред
рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рд▓рд╣рд░рд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЬреАрдПрд╕рдПрдо рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
рдордзреНрдпрд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдБред

рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдЬреАрдПрд╕рдПрдо рдкреНрд░рд╛рд░реВрдк рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ * рдЦреЗрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдбрд╛рдпрд▓рдкреИрди рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
exten => 227,1,Set(home=/var/lib/asterisk/festivalcache)
exten => 227,2,Wait(1)
exten => 227,n,System(/bin/sh /var/lib/asterisk/tts.sh ". " "${EXTEN}.${PRIORITY}")
exten => 227,n,Playback(${home}/${EXTEN}.$[${PRIORITY} - 1])
exten => 227,n,Set(tic=${STRFTIME(${EPOCH},,%Y%m%d)}))
exten => 227,n,System(/bin/sh /var/lib/asterisk/dt.sh 1 "${EXTEN}.${tic}")
exten => 227,n,Playback(${home}/date/${EXTEN}.${tic})
exten => 227,n,System(/bin/sh /var/lib/asterisk/tts.sh ". " "${EXTEN}.${PRIORITY}")
exten => 227,n,Playback(${home}/${EXTEN}.$[${PRIORITY} - 1])
exten => 227,n,System(/bin/sh /var/lib/asterisk/tts.sh ". ." "${EXTEN}.${PRIORITY}")
exten => 227,n,Playback(${home}/${EXTEN}.$[${PRIORITY} - 1])
exten => 227,n,Set(tic=${STRFTIME(${EPOCH},,%H%M%S)})
exten => 227,n,System(/bin/sh /var/lib/asterisk/dt.sh 2 "${tic}")
exten => 227,n,Playback(${home}/time/${tic})
exten => 227,n,Hangup()


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рддреА рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ 227.3.gsm, 227.8.gsm, 227.10.gsm рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреА рдФрд░ рдЦреЗрд▓реА рдЬрд╛рдПрдВрдЧреА, рдФрд░ рджреЛ рдФрд░ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ред рд╕реВрдЪреАрдмрджреНрдз рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП 50-60 Google рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдкрд░ рднреА рдмреЛрдЭ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рд╣рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдореЗрдиреВ рджреЗрдВрдЧреЗред

рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рдЬрд┐рди рджреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рд╡реЗ рд╡рд░реНрддрдорд╛рди рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рд╣реИрдВред рд╡реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рддрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
exten => 227,n,Set(tic=${STRFTIME(${EPOCH},,%Y%m%d)}))
exten => 227,n,System(/bin/sh /var/lib/asterisk/dt.sh 1 "${EXTEN}.${tic}")
exten => 227,n,Playback(${home}/date/${EXTEN}.${tic})


рдФрд░
exten => 227,n,Set(tic=${STRFTIME(${EPOCH},,%H%M%S)})
exten => 227,n,System(/bin/sh /var/lib/asterisk/dt.sh 2 "${tic}")
exten => 227,n,Playback(${home}/time/${tic})

рдХреНрд░рдорд╢рдГред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЙрд▓ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЖрд╡рд╛рдЬ рдХреЗ рд▓рд┐рдП Google рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрддрд╛ рд╣реИ
#!/bin/sh
if [ $1 -eq 1 ]; then
q=`date +" %d.%m.%Y "`
n=date/$2
fi
if [ $1 -eq 2 ]; then
q=`date +" %H:%M:%S"`
n=time/$2
fi
echo "$q"
/var/lib/asterisk/tts.sh "$q" $n

рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рддрд╛рд░реАрдЦ рдпрд╛ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдоред рддрд┐рдерд┐рдпрд╛рдВ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рддрд╛рд░реАрдЦ рдХреЗ рд╕рдордп рдореЗрдВ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣рдореЗрдВ * рджреЗрддрд╛ рд╣реИред рдЯрд┐рдХ = $ {STRFTIME ($ {┬й},% Y% m% d)}) рдПрдХ рдорд╣реАрдирд╛ рдФрд░ рдбреЗрдврд╝ рд╣реИ) рдФрд░ рдЯрд┐рдХ = $ {STRFTIME ($ {┬й},% H% M% S)} рдПрдХ рдШрдВрдЯрд╛ рдФрд░ рджреВрд╕рд░рд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк рд╕рдордп рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рд╛рдл рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рднреА рд╕рдВрднрд╡ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрддрдирд╛ рдЖрд╕рд╛рди рд░реИрдкрд░ред
рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЫреЛрдЯреЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд╕рд░рд▓ рдФрд░ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 100 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдЬрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрдирдХреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ рдРрд╕реА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрдИ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА 100 рд╡рд░реНрдгреЛрдВ рд╕реЗ рдХрдо рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛:
[root@SIP:/var/lib/asterisk]# cat ttsb.sh
#!/bin/sh
Source=/var/lib/asterisk/source
i=0
splitted=''
NAME=/var/lib/asterisk/festivalcache/$2
`ls /var/lib/asterisk/festivalcache/$2.gsm`
if [ $? -eq 1 ]; then
for str in `cat $Source/$1`
do
i=`expr $i + 1`
WORKNAME=/var/lib/asterisk/festivalcache/$2.work.$i.mp3
splitted="$splitted $WORKNAME"
#echo $WORKNAME
#echo $str
#echo SP: $splitted
/usr/local/bin/wget -U "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5" "http://translate.google.com/translate_tts?q=$str&tl=ru" -O $WORKNAME
done
/usr/local/bin/mpg123 -w "$NAME.wav" $splitted
echo "Converting from wav to gsm"
/usr/local/bin/sox -t wav "$NAME.wav" -r 8000 -c1 -t gsm "$NAME.gsm"
rm $splitted
rm $NAME.wav
fi

рдЦреИрд░, рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рднреА рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╣рдо рдлрд╝рд╛рдЗрд▓ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ Google рдХреЗ рд╕рд╛рде рдлрд╝реАрдб рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рд╕рднреА рдПрдордкреА 3 рдХреЛ рдПрдХ wav рдореЗрдВ рдЧреЛрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ gsm рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рд░рд╛рдо рд╕реБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рд▓рд╛рдЗрдиреЗрдВ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдЙрдЪреНрдЪрд╛рд░рдг рдХреЗ рдмреАрдЪ рдПрдХ рдард╣рд░рд╛рд╡ рдХрд╛ рдорддрд▓рдм рд╣реИред

рдЗрд╕ рдкрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рд░реИрдкрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрд╕реЗ рдЦрд┐рд▓рд╛рдПрдВ, рдПрдХ рдЖрд╡рд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

рд╕реНрдкрд┐рдВрдХреНрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ (рдореИрдВрдиреЗ 96% рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рд░реВрд╕реА рд╡реНрдпрд╛рдХрд░рдгреЛрдВ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреЗрдЦреА), Google рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдлрд╝реАрдб рдХрд░реЗрдВ, рджреВрд╕рд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ рдФрд░ Google рдХрд╛ рднреА рдЙрдЪреНрдЪрд╛рд░рдг рдХрд░реЗрдВред рдореИрдВ рд╕рдЪ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпреЛрдВред

Source: https://habr.com/ru/post/In133782/


All Articles