Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Учим компьютер разговаривать! (http://forum.oszone.net/showthread.php?t=151422)

evg64 25-09-2009 00:50 1226892

Учим компьютер разговаривать!
 
На иностранном форуме наткнулся на интересный скрипт, он читает вслух заданную строку текста. Вот код:

Код:

$Input=inputbox("TalkObj","Insert the text to read:")
if @error=1 then exit
_TalkObj($Input)

Func _TalkOBJ($s_text)
    Local $o_speech
    $o_speech = ObjCreate("SAPI.SpVoice")
    $o_speech.Speak ($s_text)
    $o_speech = ""
EndFunc ;==>_TalkOBJ999

Вопрос: как научить комп говорить не только на английском, но и на другом языке (допустим, русском)? Гуглить пробовал. Есть какая-то прога русского голоса размером 160мб... - в общем я сначала лучше спрошу, а потом делать буду)

Creat0R 25-09-2009 01:55 1226915

Цитата:

Цитата evg64
как научить комп говорить не только на английском, но и на другом языке (допустим, русском)? »

В системе должен быть установлен русский голосовой движёк.
На оф. форуме также есть пример с выбором языка, найти не удалось, но вот немного подправленная версия с моего архива:

Код:

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <SliderConstants.au3>
;

Global $oVoice = ObjCreate("SAPI.SpVoice")
Global $oError = ObjEvent("AutoIt.Error", "ErrFunc")

Global Const $WM_HSCROLL = 0x0114
Global Const $VOICE_LANG = 0409

$Main_GUI = GUICreate("SAPI Speaker", 600, 280)
GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL")

$Text_Edit = GUICtrlCreateEdit("AutoIt v3 is a freeware BASIC-like scripting language designed for automating the" & @CRLF & _
                "Windows GUI.  It uses a combination of simulated keystrokes, mouse movement and" & @CRLF & _
                "window/control manipulation in order to automate tasks in a way not possible or reliable" & @CRLF & _
                "with other languages (e.g. VBScript and SendKeys).", 10, 10, 580, 50)

$Speak_Button = GUICtrlCreateButton("Speak", 10, 65, 60, 22, $BS_DEFPUSHBUTTON)
$Pause_Button = GUICtrlCreateButton("Pause", 90, 65, 60, 22)
GUICtrlSetState(-1, $GUI_DISABLE)
$Resume_Button = GUICtrlCreateButton("Resume", 170, 65, 60, 22)
GUICtrlSetState(-1, $GUI_DISABLE)
$Stop_Button = GUICtrlCreateButton("Stop", 250, 65, 60, 22)
GUICtrlSetState(-1, $GUI_DISABLE)

GUICtrlCreateGroup("Options", 10, 100, 580, 170)
$Rate_Slider = GUICtrlCreateSlider(20, 150, 280, 30, $TBS_TOP + $TBS_AUTOTICKS)
GUICtrlSetLimit(-1, 50, -50)
GUICtrlSetData(-1, 0)

$Volume_Slider = GUICtrlCreateSlider(300, 150, 280, 30, $TBS_TOP + $TBS_AUTOTICKS)
GUICtrlSetLimit(-1, 100, 1)
GUICtrlSetData(-1, 100)

$Rate_Precent_Label = GUICtrlCreateLabel("Speach Speed: " & 0, 120, 125, 150, 15)
$Volume_Precent_Label = GUICtrlCreateLabel("Speach Volume: " & 100, 400, 125, 150, 15)

GUICtrlCreateLabel("Slow", 20, 185)
GUICtrlCreateLabel("Normal", 140, 185)
GUICtrlCreateLabel("Fast", 270, 185)
GUICtrlCreateLabel("Quiet", 310, 185)
GUICtrlCreateLabel("Loud", 550, 185)
GUICtrlCreateLabel("Voice:", 20, 233)

$Voice_Combo = GUICtrlCreateCombo("Microsoft Sam", 60, 230, 100)

$SOTokens = $oVoice.GetVoices('', 'Language=' & $VOICE_LANG)

For $Token In $SOTokens
    GUICtrlSetData($Voice_Combo, $Token.GetDescription, $Token.GetDescription)
Next

;~ GUICtrlSetData($Voice_Combo, "Microsoft Mike|Microsoft Mary|LH Michael|LH Michelle")

GUISetState()

While 1
        Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
            Exit
                Case $Speak_Button
                        $sText = GUICtrlRead($Text_Edit)
                        $SAPIVoice = GUICtrlRead($Voice_Combo)
                        $nRate = GUICtrlRead($Rate_Slider) / 10
                        $nVol = GUICtrlRead($Volume_Slider)
            _Speak($sText, $SAPIVoice, $nRate, $nVol)
                        If @error Then ContinueLoop
                       
                        GUICtrlSetState($Speak_Button, $GUI_DISABLE)
                        GUICtrlSetState($Pause_Button, $GUI_ENABLE)
                        GUICtrlSetState($Stop_Button, $GUI_ENABLE)
                Case $Pause_Button
                        $oVoice.Pause
                       
                        GUICtrlSetState($Speak_Button, $GUI_DISABLE)
                        GUICtrlSetState($Pause_Button, $GUI_DISABLE)
                        GUICtrlSetState($Resume_Button, $GUI_ENABLE)
                Case $Resume_Button
                        $oVoice.Resume
                       
                        GUICtrlSetState($Pause_Button, $GUI_ENABLE)
                        GUICtrlSetState($Resume_Button, $GUI_DISABLE)
                Case $Stop_Button
                        $oVoice = ObjCreate("SAPI.SpVoice")
                       
                        GUICtrlSetState($Speak_Button, $GUI_ENABLE)
                        GUICtrlSetState($Pause_Button, $GUI_DISABLE)
                        GUICtrlSetState($Stop_Button, $GUI_DISABLE)
                        GUICtrlSetState($Resume_Button, $GUI_DISABLE)
        EndSwitch
WEnd

Func _Speak($sText, $SAPIVoice, $iRate = 1, $iVol = 100)
        $oVoice = ObjCreate("SAPI.SpVoice")
        $oVoice.Rate = $iRate
        If @error Then Return
        $oVoice.Volume = $iVol
        If @error Then Return
        Local $t_Voice = $oVoice.GetVoices("Name=" & $SAPIVoice, "Language=" & $VOICE_LANG).Item(0)
        If @error Then Return
        $oVoice.Voice = $t_Voice
        If Not @error Then $oVoice.Speak($sText, 1)
EndFunc

Func WM_HSCROLL($hWndGUI, $MsgID, $WParam, $LParam)
        Switch $LParam
                Case GUICtrlGetHandle($Rate_Slider)
                        Local $nVoiceRateRead = GUICtrlRead($Rate_Slider)
                        $oVoice.Rate = $nVoiceRateRead / 10
                        GUICtrlSetData($Rate_Precent_Label, "Speach Speed: " & $nVoiceRateRead)
                Case GUICtrlGetHandle($Volume_Slider)
                        Local $nVolumeRead = GUICtrlRead($Volume_Slider)
                        $oVoice.Volume = $nVolumeRead
                        GUICtrlSetData($Volume_Precent_Label, "Speach Volume: " & $nVolumeRead)
        EndSwitch
EndFunc

Func ErrFunc()
        If Hex($oError.Number,8) = 80020009 Then
                MsgBox(48, "Error", "This machine doesn't have " & GUICtrlRead($Voice_Combo) & " installed")
                Return SetError(1)
        EndIf
       
        Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !"      & @CRLF  & @CRLF & _
                        "err.description is: "    & @TAB & $oError.description    & @CRLF & _
                        "err.windescription:"    & @TAB & $oError.windescription & @CRLF & _
                        "err.number is: "        & @TAB & Hex($oError.number,8)  & @CRLF & _
                        "err.lastdllerror is: "  & @TAB & $oError.lastdllerror  & @CRLF & _
                        "err.scriptline is: "    & @TAB & $oError.scriptline    & @CRLF & _
                        "err.source is: "        & @TAB & $oError.source        & @CRLF & _
                        "err.helpfile is: "      & @TAB & $oError.helpfile      & @CRLF & _
                        "err.helpcontext is: "    & @TAB & $oError.helpcontext)
        Local $iErr = $oError.number
        If $iErr = 0 Then $iErr = -1
       
        SetError($iErr)
EndFunc


beve 25-09-2009 23:27 1227580

Тоже я тут искал на английском форуме по autoit. Примеров, которые показывают, как воспроизводить текст, есть немало, но все не то, ибо видят только установленный голос Mikrosoft Sam, при том что в системе их установлено с десяток. Поэтому можно это сделать по другому.
На сайте программы Говорилки, есть версия, которая работает с командной строки (Ссылка). Там же описано как ее использовать. С ее помощью можно воспроизводить текст, записывать текст, в аудио файл... Вобщем вот набросал пример, который можно скачать тута.
Отдельно нужно скачать голосовые движки, SpeechApi версии 4, 5. Но эти "голоса", что там, слушать практически невозможно, ибо акцент - просто тихий ужас. Я б рекомендовал использовать в качестве мужского голоса - Русский голос Digalo (он же Николай), а в качестве женского голоса - Алена. Пакеты с этими голосами можна приобрести в интернете... Там же можно скачать и словари, в которых подкоректированы произношения отдельных слов. (От себя добавлю, что голос Алена, по-моему самый лучший женский голос, до недавнего таким считался Катерина) По размеру они весят немало, больше 100Мб, ибо хороший голос в 5-10 Мб не упихнуть...
Пример оч. простенького кода, скрипт, и все необходимое для его работы - в архиве, ссылка на который выше:
читать дальше »
Код:

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <SliderConstants.au3>
#include <array.au3>
;

; При первом запуске в системе пишем в ini список всех гол.движков которые установлены в сестеме
If FileExists("voices.Ini")==0 Then
   
ShellExecute("Govorilka_cp.exe"," -H", @ScriptDir)
   
WinWait("Govorilka_CP","")
   
WinActivate("Govorilka_CP","")
   
WinWaitActive("Govorilka_CP","")
   
ControlClick("Govorilka_CP","","Button1")
   
WinWait("Govorilka_CP. Available Voices","")
   
$Voices=ControlGetText("Govorilka_CP. Available Voices","","[CLASS:Static; INSTANCE:1]")
   
WinClose("Govorilka_CP. Available Voices","")
   
$Voices=StringReplace(
StringRegExpReplace($Voices,"(?s)(.*?)\d*: ","\1"),@CR,"|")
   
IniWrite ( "voices.Ini", "Voices", "Voices", $Voices )
Else
   
$Voices=IniRead ( "voices.Ini", "Voices", "Voices", "Microsoft Sam" )
EndIf




Global
Const $WM_HSCROLL = 0x0114
$Main_GUI = GUICreate("SAPI Speaker", 600, 280)
$Text_Edit =
GUICtrlCreateEdit("Жили у бабуси два веселых гуся, один серый, другой белый, два веселых гуся.", 10, 10, 580, 50)

$Speak_Button =
GUICtrlCreateButton("SpeakFromEdit", 10, 65, 110, 22, $BS_DEFPUSHBUTTON)
$FromClipboard_Button =
GUICtrlCreateButton("SpeakFromClipboard", 125, 65, 110, 22)
$Stop_Button=
GUICtrlCreateButton("Stop", 532, 65, 60, 22)


GUICtrlCreateGroup("Options", 10, 100, 580, 170)
$Rate_Slider =
GUICtrlCreateSlider(20, 150, 180, 30, $TBS_TOP + $TBS_AUTOTICKS)
GUICtrlSetLimit(-1, 100, 1)
GUICtrlSetData(-1, 40)

$Volume_Slider =
GUICtrlCreateSlider(210, 150, 180, 30, $TBS_TOP + $TBS_AUTOTICKS)
GUICtrlSetLimit(-1, 100, 1)
GUICtrlSetData(-1, 100)


$Pitch_Slider =
GUICtrlCreateSlider(400, 150, 180, 30, $TBS_TOP + $TBS_AUTOTICKS)
GUICtrlSetLimit(-1, 100, 1)
GUICtrlSetData(-1, 50)


$Rate_Precent_Label =
GUICtrlCreateLabel("Speach Speed: " & 40, 50, 125, 150, 15)
$Volume_Precent_Label =
GUICtrlCreateLabel("Speach Volume: " & 100, 250, 125, 150, 15)
$Pitch_Precent_Label =
GUICtrlCreateLabel("Speech Pitch: " & 50, 440, 125, 150, 15)

GUICtrlCreateLabel("Slow", 30, 185)
GUICtrlCreateLabel("Normal", 95, 185)
GUICtrlCreateLabel("Fast", 170, 185)

GUICtrlCreateLabel("Quiet", 220, 185)
GUICtrlCreateLabel("Loud", 360, 185)
GUICtrlCreateLabel("Voice:", 20, 233)

GUICtrlCreateLabel("Low", 410, 185)
GUICtrlCreateLabel("Normal", 475, 185)
GUICtrlCreateLabel("High", 550, 185)


$Voice_Combo =
GUICtrlCreateCombo("Digalo Russian Nicolai", 60, 230, 170)
GUICtrlSetData($Voice_Combo, $Voices)
GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL")
GUISetState()

While 1
   
Switch GUIGetMsg()
       
Case $GUI_EVENT_CLOSE
           
Exit
        Case
$Speak_Button
            $sText
= ' '&
GUICtrlRead($Text_Edit)
           
$SAPIVoice =
GUICtrlRead($Voice_Combo)
           
$nRate = ' -S'&
GUICtrlRead($Rate_Slider)
           
$nVol ' -V'&
GUICtrlRead($Volume_Slider)
           
$nPitch = ' -P'&
GUICtrlRead($Pitch_Slider)
           
_Speak($sText, $SAPIVoice, $nRate, $nVol, $nPitch)
       
Case $FromClipboard_Button
            $sText
= " -C"
           
$SAPIVoice =
GUICtrlRead($Voice_Combo)
           
$nRate = ' -S'&
GUICtrlRead($Rate_Slider)
           
$nVol = ' -V'&
GUICtrlRead($Volume_Slider)
           
$nPitch =' -P'&
GUICtrlRead($Pitch_Slider)
           
_Speak($sText, $SAPIVoice, $nRate, $nVol, $nPitch)
       
Case $Stop_Button
           
ShellExecute("Govorilka_cp.exe"," -STOPALL", @ScriptDir)
   
EndSwitch
WEnd

Func
_Speak($sText, $SAPIVoice, $iRate = 1, $iVol = 100,$nPitch=50)
   
If ProcessExists("Govorilka_cp.exe") Then
       
ProcessClose("Govorilka_cp.exe")
       
ProcessWaitClose("Govorilka_cp.exe")
   
EndIf
   
$invisibleMode=' '
;если не будет $invisibleMode=' -i', то в нижним правом углу при воспроизведении текста буде появляться мерцающий квадрат, и при клике на него, воспроизведение текста прекратится.
   
Switch $SAPIVoice
   
Case "Digalo Russian Nicolai"
       
$dictionary_file=' -D '&'"'&@ScriptDir&'\Digalo Russian Nicolai.dic'&'"'
; в данном файле можно указать правильное произношение того слова, которое читается неправильно. (для каждого голоса свой словарь. См. на сайте Говорилки)
   
Case "Adult Female #1 Russian (L&H)"
       
$dictionary_file=' -D '&'"'&@ScriptDir&'\Adult Female _1 Russian (L_H).dic'&'"'
   
Case Else
       
$dictionary_file=''
EndSwitch
   
    $Param = '-E '&'"'&$SAPIVoice&'"'&$nRate&$nPitch&$nVol&$invisibleMode&$dictionary_file&$sText
ShellExecute("Govorilka_cp.exe",$Param, @ScriptDir)
EndFunc


Func
WM_HSCROLL($hWndGUI, $MsgID, $WParam, $LParam)
   
Switch $LParam
       
Case
GUICtrlGetHandle($Rate_Slider)
           
Local $nVoiceRateRead =
GUICtrlRead($Rate_Slider)
           
GUICtrlSetData($Rate_Precent_Label, "Speach Speed: " & $nVoiceRateRead)
       
Case
GUICtrlGetHandle($Volume_Slider)
           
Local $nVolumeRead =
GUICtrlRead($Volume_Slider)
           
GUICtrlSetData($Volume_Precent_Label, "Speach Volume: " & $nVolumeRead)
       
Case
GUICtrlGetHandle($Pitch_Slider)
           
Local $nPitchRead =
GUICtrlRead($Pitch_Slider)
           
GUICtrlSetData($Pitch_Precent_Label, "Speach Pitch: " & $nPitchRead)
   
EndSwitch
EndFunc   


evg64 20-10-2009 20:36 1248160

Вложений: 1
Creat0R, голоса Microsoft Sam и еще 1 китайский голос ваш скрипт воспроизводит корректно. Но когда я установил Алену (русский голос), выдается сообщение "This machine doesn't have Alyona (Russian) SAPI5 installed", причем через интерфейс, который установился вместе с Аленой, все воспроизводится нормально. В чем может быть проблема?
P.S. Сегодня скачал английские голоса - Mike, Crystal. Попробовав запустить их, получил ту же ошибку, только в окошках написано "This machine doesn't have ATT DTNV 1.4 Crystal installed".

beve 07-11-2009 02:34 1263677

Цитата:

Цитата evg64
Но когда я установил Алену (русский голос), выдается сообщение "This machine doesn't have Alyona (Russian) SAPI5 installed", причем через интерфейс, который установился вместе с Аленой, все воспроизводится нормально. В чем может быть проблема? »

Понадобилось и мне послушать "Аленку", точно выдает ошибку. Вот маленько поправил код Creat0R-a, теперь все ок (по крайней мере у меня):
Код:

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <SliderConstants.au3>
;

Global $oVoice = ObjCreate("SAPI.SpVoice")
Global $oError =
ObjEvent("AutoIt.Error", "ErrFunc")

Global
Const $WM_HSCROLL = 0x0114
Global
Const $VOICE_LANG = 0419
Global $fStateOfVoice=0
;состояние голосового движка

$Main_GUI = GUICreate("SAPI Speaker", 600, 280)
GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL")

$Text_Edit =
GUICtrlCreateEdit("Здравствуйте дорогие друзья." & @CRLF & _
       
"Этот текст читает выбранный вами диктор." & @CRLF & _
       
"Если вам не нравиться мой голос," & @CRLF & _
       
"то придется вам научится читать самому!", 10, 10, 580, 50)

$Speak_Button =
GUICtrlCreateButton("Speak", 10, 65, 60, 22, $BS_DEFPUSHBUTTON)
$Pause_Button =
GUICtrlCreateButton("Pause", 90, 65, 60, 22)
GUICtrlSetState(-1, $GUI_DISABLE)
$Resume_Button =
GUICtrlCreateButton("Resume", 170, 65, 60, 22)
GUICtrlSetState(-1, $GUI_DISABLE)
$Stop_Button =
GUICtrlCreateButton("Stop", 250, 65, 60, 22)
GUICtrlSetState(-1, $GUI_DISABLE)

GUICtrlCreateGroup("Options", 10, 100, 580, 170)
$Rate_Slider =
GUICtrlCreateSlider(20, 150, 280, 30, $TBS_TOP + $TBS_AUTOTICKS)
GUICtrlSetLimit(-1, 50, -50)
GUICtrlSetData(-1, 0)

$Volume_Slider =
GUICtrlCreateSlider(300, 150, 280, 30, $TBS_TOP + $TBS_AUTOTICKS)
GUICtrlSetLimit(-1, 100, 1)
GUICtrlSetData(-1, 100)

$Rate_Precent_Label =
GUICtrlCreateLabel("Speach Speed: " & 0, 120, 125, 150, 15)
$Volume_Precent_Label =
GUICtrlCreateLabel("Speach Volume: " & 100, 400, 125, 150, 15)

GUICtrlCreateLabel("Slow", 20, 185)
GUICtrlCreateLabel("Normal", 140, 185)
GUICtrlCreateLabel("Fast", 270, 185)
GUICtrlCreateLabel("Quiet", 310, 185)
GUICtrlCreateLabel("Loud", 550, 185)
GUICtrlCreateLabel("Voice:", 20, 233)

$Voice_Combo =
GUICtrlCreateCombo("Microsoft Sam", 60, 230, 100)

$SOTokens = $oVoice.GetVoices('', 'Language=' & $VOICE_LANG)

For $Token
In $SOTokens
   
GUICtrlSetData($Voice_Combo, $Token.GetDescription, $Token.GetDescription)
Next

GUISetState()

While 1
;$oVoice.status.runningstate может принимать следующие значения: 1-остановлен, 0- пауза, 2-воспроизведение
If $fStateOfVoice=And $oVoice.status.runningstate=1 Then
   
GUICtrlSetState($Speak_Button, $GUI_ENABLE)
   
GUICtrlSetState($Pause_Button, $GUI_DISABLE)
   
GUICtrlSetState($Stop_Button, $GUI_DISABLE)
   
GUICtrlSetState($Resume_Button, $GUI_DISABLE)
   
$fStateOfVoice=0
EndIf 

Switch GUIGetMsg()
   
Case $GUI_EVENT_CLOSE
       
Exit
    Case
$Speak_Button
        $sText
=
GUICtrlRead($Text_Edit)
       
$SAPIVoice =
GUICtrlRead($Voice_Combo)
       
$nRate =
GUICtrlRead($Rate_Slider) / 10
       
$nVol =
GUICtrlRead($Volume_Slider)
       
_Speak($sText, $SAPIVoice, $nRate, $nVol)
       
If @error Then ContinueLoop
           
       
GUICtrlSetState($Speak_Button, $GUI_DISABLE)
       
GUICtrlSetState($Pause_Button, $GUI_ENABLE)
       
GUICtrlSetState($Stop_Button, $GUI_ENABLE)
       
$fStateOfVoice=1
   
Case $Pause_Button
        $oVoice
.Pause
           
       
GUICtrlSetState($Speak_Button, $GUI_DISABLE)
       
GUICtrlSetState($Pause_Button, $GUI_DISABLE)
       
GUICtrlSetState($Resume_Button, $GUI_ENABLE)
   
Case $Resume_Button
        $oVoice
.Resume
           
       
GUICtrlSetState($Pause_Button, $GUI_ENABLE)
       
GUICtrlSetState($Resume_Button, $GUI_DISABLE)
   
Case $Stop_Button
            $oVoice
=
ObjCreate("SAPI.SpVoice")
           
       
GUICtrlSetState($Speak_Button, $GUI_ENABLE)
       
GUICtrlSetState($Pause_Button, $GUI_DISABLE)
       
GUICtrlSetState($Stop_Button, $GUI_DISABLE)
       
GUICtrlSetState($Resume_Button, $GUI_DISABLE)
       
$fStateOfVoice=0
EndSwitch
WEnd

Func
_Speak($sText, $SAPIVoice, $iRate = 1, $iVol = 100)
   
$oVoice =
ObjCreate("SAPI.SpVoice")
   
$oVoice.Rate = $iRate
   
If @error Then Return
   
$oVoice.Volume = $iVol
   
If @error Then Return
       
    Local
$t_Voice = $oVoice.GetVoices()
   
Local $SAPIVoices
   
   
For $SAPIVoices
In $t_Voice
       
If $SAPIVoices.GetDescription() = $SAPIVoice Then
           
$oVoice.Voice = $SAPIVoices
           
If Not @error Then $oVoice.Speak($sText, 1)
           
Return
        EndIf
    Next
   
Msgbox(64,"Внимание", "Вы видимо попытались вручную ввести название 'голосового движка', и поэтому ошиблись, ибо таков голос не найден в вашей системе.",6)
EndFunc

Func
WM_HSCROLL($hWndGUI, $MsgID, $WParam, $LParam)
   
Switch $LParam
       
Case
GUICtrlGetHandle($Rate_Slider)
           
Local $nVoiceRateRead =
GUICtrlRead($Rate_Slider)
           
$oVoice.Rate = $nVoiceRateRead / 10
           
GUICtrlSetData($Rate_Precent_Label, "Speach Speed: " & $nVoiceRateRead)
       
Case
GUICtrlGetHandle($Volume_Slider)
           
Local $nVolumeRead =
GUICtrlRead($Volume_Slider)
           
$oVoice.Volume = $nVolumeRead
           
GUICtrlSetData($Volume_Precent_Label, "Speach Volume: " & $nVolumeRead)
   
EndSwitch
EndFunc

Func
ErrFunc()
   
If Hex($oError.Number,8) = 80020009 Then
       
MsgBox(48, "Error", "This machine doesn't have " &
GUICtrlRead($Voice_Combo) & " installed")
       
Return SetError(1)
   
EndIf
   
   
Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !"      & @CRLF  & @CRLF & _
           
"err.description is: "    & @TAB & $oError.description    & @CRLF & _
           
"err.windescription:"    & @TAB & $oError.windescription & @CRLF & _
           
"err.number is: "        & @TAB & Hex($oError.number,8)  & @CRLF & _
           
"err.lastdllerror is: "  & @TAB & $oError.lastdllerror  & @CRLF & _
           
"err.scriptline is: "    & @TAB & $oError.scriptline    & @CRLF & _
           
"err.source is: "        & @TAB & $oError.source        & @CRLF & _
           
"err.helpfile is: "      & @TAB & $oError.helpfile      & @CRLF & _
           
"err.helpcontext is: "    & @TAB & $oError.helpcontext)
   
Local $iErr = $oError.number
   
If $iErr = 0 Then $iErr = -1
   
   
SetError
($iErr)
EndFunc

Кстати, ранее установленный голос Русского Николая, не отображался сдесь, как один из установленных "голосов". На днях скачал одну прогу где то из файлообменника, так там в архиве тож был голос Николая, но сей после установки, стал отображаться сдесь (в описанном выше скрипте, ну и работает конечно). Так что мож кому пригодится такая информация, что выходит есть всякие инсталяторы...(Данный инсталятор голоса в архиве назывался: Acapela-Elan-TTS-SpeechCube-5[1].1-RUS-Nicolai_MmE255_.msi. Кому интересно, Google в помощь.)

evg64 07-11-2009 09:27 1263756

Цитата:

Цитата beve
теперь все ок (по крайней мере у меня) »

У меня тоже.


Время: 06:35.

Время: 06:35.
© OSzone.net 2001-