Перевод статьи alexreg "Text-To-Speech" Оригинал - DeveloperFusion
А не заняться ли нам созданием простенькой программы-говорилки. Для этого нам, как всегда, потребуются контрол Text2Speech и всякие библиотеки с сайта Микрософта.
Шаг первый - Добавление контролов.
Для начала начнем новый проект. Ставим ему имя - TextToSpeech, имя формы frmSpeak. Добавим контрол Direct Text-to-Speech через Projects/Components. Растянем этот контрол на форме и неприлично обзовем его spkSpeak. Свойство Visible изменим на False. Добавим 10(десять!!!) кнопок. Присвоим каждое имя btnNumbers и Caption - числовое значение на единицу большее индекса данной кнопки.(Это значит, что нам необходимо создать так называемый Control Array. Делается это элементарно - copy/paste на кнопке. Нужно это для того, чтобы обращаться ко всем кнопкам сразу, разделяя их только по индексам). Также нам понадобится текстбокс (txtText) с активированным свойством Multiline. Ну и напоследок еще одна кнопка btnSpeak c Caption = Speak.
Шаг второй - Объявление констант.
Просто перепишем этот код в General.
′ Code start - declaration.
Const Notepad = "c:windows
otepad.exe"
Const Wordpad = "C:program filesaccessoriesWordpad.exe"
Const Paint = "c:windowsPbrush.exe"
Const Calculator = "c:windowsCalc.exe"
Const Volume = "c:windowsSndvol32.exe"
Const InternetExplorer = "C:Program FilesInternet ExplorerIexplore.exe"
Const SoundRecorder = "c:windowsSndrec32.exe"
Const Clipboard = "c:windowsClipbrd.exe"
Const Dialer = "c:windowsDialer.exe"
Const Solitaire = "c:windowsSol.exe"
|
Шаг третий - Собственно код.
Это - обработчик нажатий на кнопки.
spkSpeak.Speak "You clicked button number " & btnNumbers(Index).Caption & "."
Select Case Index + 1
Case Is = 1
Shell Notepad, vbNormalNoFocus
Case Is = 2
Shell Wordpad, vbNormalNoFocus
Case Is = 3
Shell Paint, vbNormalNoFocus
Case Is = 4
Shell Calculator, vbNormalNoFocus
Case Is = 5
Shell Volume, vbNormalNoFocus
Case Is = 6
Shell InternetExplorer, vbNormalNoFocus
Case Is = 7
Shell SoundRecorder, vbNormalNoFocus
Case Is = 8
Shell Clipboard, vbNormalNoFocus
Case Is = 9
Shell Dialer, vbNormalNoFocus
Case Is = 10
Shell Solitaire, vbNormalNoFocus
End Select
|
Это мы пишем на кнопке Speak.
spkSpeak.Speak txtText.Text
|
Как эта красота работает? Когда мы нажимаем кнопочку прога проговаривает на чистейшем Инглише "Вы нажали кнопень номер такой-то" и запускает программу, которая соответствует данной кнопке. Более того, если мы пишем что-либо в текстбоксе прога это проговаривает.
Да, получилось немного банально, RTFM для самых маленьких.
Written by U1traDIMM 01/10/2002