Как заставить компьютер говорить с вами?

20.11.2014 0 Автор Jeff

Интеллектуальные машины, способные к речи, часто являются материалом футуристических научно-фантастических фильмов, но Вы можете превратить любой компьютер в »болтливую Кэти». Даже при том, что мы еще не на той стадии взаимодействия с компьютерами, когда можно общаться с ними, как с людьми, уже сейчас есть несколько инструментов и простых скриптов, которые мы можем написать, чтобы научить любой компьютер, под управлением Windows, говорить с нами.

Немного истории Visual Basic

В 1988 появились первые итерации VBScript (редакция Visual Basic Scripting) и были все еще очень примитивной версией того, что мы имеем сегодня. За эти годы необходимость простого в использовании и легкого языка сценариев для Microsoft увеличилась. Из-за этого компания продолжала работать над ним и наконец выпустила для общественности в 1996.

Это простой скриптовый язык, использующий COM (Component Object Model), для создания, чтения, обновления и удаления файлов в пределах операционных систем Microsoft. Со времен выпуска Windows 98, он был установлен в каждый компьютер. Он очень универсален из-за того, что окружающая среда хоста VBScript может быть включена в рамках использования программ Microsoft Script Control. Часто можно встретить использование VBScript совместно с Internet Information Services, Windows Script Host, and Internet Explorer.

Но, хватит истории, давайте перейдем к нему и изучим, как научить Ваш компьютерный разговаривать!

Научим компьютер разговаривать используя только VBScripts

Создание скрипта Visual Basic очень легкое и не требует никаких специальных программ. Хотя специальные программы и есть, Вы можете использовать, для написания скрипта то, чем пользуется большинство программистов и людей, которые балуются написанием скриптов — Блокнот Microsoft.

Давайте начнем процесс и откроем Блокнот. После того, как Вы открыли Блокнот все, что Вы должны сделать — напечатать в нем код, который мы продемонстрируем или просто скопировать и вставить его в Блокнот. Чтобы изменить то, что Ваш скрипт заставит сказать компьютер, просто замените секцию, которая говорит, что “The geeks shall inherit the earth” на то, что Вы хотите услышать.

dim speechobject
set speechobject=createobject(«sapi.spvoice»)
speechobject.speak «The geeks shall inherit the earth»

После того, как Вы ввели текст, который Вы хотите услышать, нажмите “Файл” и нажмите “Сохранить Как …” .

Найдите место, где Вы хотите сохранить скрипт. Для этого примера я сохраню его в пустой папке в каталоге Downloads. Важная вещь, которую Вы должны сделать — дать ему имя, которое заканчивается .vbs. Это скажет компьютеру, что Вы сохранили не текстовый файл, а VBScript. Мы назовем файл так, как показано ниже.

Теперь Вы можете закрыть блокнот и перейти к папке, в которой Вы сохранили VBScript. Вы заметите, что значок — не стандартный значок TXT, а маленький синий свиток на белом фоне. Дважды щелкните по этому значку, чтобы заставить Ваш скрипт исполняться и произносить Ваш текст. Поздравляем, Вы только что создали свой первый скрипт!

Теперь, чтобы приобрести некоторый навык создания скриптов, попытайтесь создать еще несколько скриптов с любым текстом, который Вы хотите услышать. Для быстрого редактирования скрипта, Вы можете щелкнуть правой кнопкой мыши по VBScript и выбрать “Открыть с …” , выбрать блокнот, чтобы отредактировать текст в том же самом файле.

Текст к речевому скрипту

Теперь, когда Вы знаете, как написать скрипт и, вероятно, наигрались с ним, Вы можете заскучать. Вот почему мы собираемся шагнуть на ступеньку выше.

Следующая вещь, которую мы изучим, состоит в том, как создать скрипт, который немного более продвинут, чем скрипт из первого примера. Он создаст диалоговое окно, в котором Вы сможете напечатать текст и он будет произнесен вашим компьютером.

Для начало, откроем Ваш блокнот снова и вставим в ваш скрипт или его копию приведенный ниже код и сохраним его.

Dim message, sapi
message=InputBox(«What shall I say, your Geekness?», «I speak for you.»)
Set sapi=CreateObject(«sapi.spvoice»)
sapi.Speak message

После того, как код был введен, просто сохраните файл как “Text to Speech.vbs” как было показано ранее, для сохранения скрипта. Как только это было сделано, перейдите к расположению файла и выполните его. Вы заметите, что окно называется, “I speak for you.” и просит ввести текст, который надо озвучить. Вы можете изменить текст в окне, чтобы компьютер произнес его.

На данный момент давайте введем “The geeks shall inherit the earth” и нажмем кнопку “OK”, чтобы управлять скриптом и услышать Ваш текст прочитанный компьютером.

Поздравления от VBScript

Сначала, откройте Ваш блокнот и вставьте этот короткий скрипт. Вы можете заменить секцию с поздравлениями любыми фразами, которые Вы хотите услышать, а также заменить Geekmeister Вашим собственным именем.

Set Sapi = Wscript.CreateObject("SAPI.SpVoice")
dim str
if hour(time) < 12 then
    Sapi.speak "Good Morning Geekmeister"
else
    if hour(time) > 12 then
        if hour(time) > 16 then
            Sapi.speak "Good evening Geekmeister"
        else
            Sapi.speak "Good afternoon Geekmeister"
        end if
    end if
end if

Теперь Вы можете сохранить текстовый документ как файл VBS. Как только Вы сделали это, зайдите в папку, где он сохранен и кликните по нему двойным кликом. В зависимости от времени он скажет “Доброе утро, добрый день или добрый вечер Geekmeister”.

Скрипт считает, что, если время до 12 — это »утро», время после 12 является »днем», после 16:00 время становится »вечером».

Скрипт времени на VBScript

Если Вы хотели бы стать немного более продвинутыми и узнавать время с помощью VBScript, откройте новое окно блокнота и создайте новый скрипт.

Скрипт может выглядеть сложным, но он по существу говорит Вашему компьютеру, что сказать и как сказать основываясь на времени, которое показывает на часах Вашего компьютера. Вы можете всегда поменять текущее время, для отладки скрипта.

Set Sapi = Wscript.CreateObject("SAPI.SpVoice")
Sapi.speak "The current time is"

if hour(time) < 12 then
    Sapi.speak hour(time)-12
else
    if hour(time) = 0 then
        Sapi.speak "12"
    else
        Sapi.speak hour(time)
    end if
end if

if minute(time) < 10 then
    Sapi.speak "o"
    if minute(time) < 1 then
        Sapi.speak "clock"
    else
        Sapi.speak minute(time)
    end if
else
    Sapi.speak minute(time)
end if

if hour(time) > 12 then
    Sapi.speak "P.M."
else
    if hour(time) = 0 then
        if minute(time) = 0 then
            Sapi.speak "Midnight"
        else
            Sapi.speak "A.M."
        end if
    else
        if hour(time) = 12 then
            if minute(time) = 0 then
                Sapi.speak "Noon"
            else
                Sapi.speak "P.M."
            end if
        else
            Sapi.speak "A.M."
        end if
    end if
end if
Теперь Вы просто должны сохранить файл как VBScript, как Вы делали в предыдущих примерах и затем перейдите к той папке. Теперь, для того чтобы компьютер произнес текущее время достаточно запустить скрипт.

Приветствие при запуске

Теперь, когда Вы знаете, как заставить Ваш компьютер приветствовать Вас и определять Вам время, было бы очень круто заставить его делать это при каждом запуске компьютера. Фактически это очень легко сделать, если Вы объедините эти два скрипта и поместите их в правильное место. Сначала откройте блокнот и скопируйте этот код. Это просто копия обоих кодов, объединенных для Вас.
Set Sapi = Wscript.CreateObject("SAPI.SpVoice")
dim str
if hour(time) < 12 then
    Sapi.speak "Good Morning, Geekmeister"
else
    if hour(time) > 12 then
        if hour(time) > 16 then
            Sapi.speak "Good evening, Geekmeister"
        else
            Sapi.speak "Good afternoon, Geekmeister"
        end if
    end if
end if

Sapi.speak "The current time is"

if hour(time) > 12 then
    Sapi.speak hour(time)-12
else
    if hour(time) = 0 then
        Sapi.speak "12"
    else
        Sapi.speak hour(time)
    end if
end if

if minute(time) < 10 then
    Sapi.speak "o"
    if minute(time) < 1 then
        Sapi.speak "clock"
    else
        Sapi.speak minute(time)
    end if
else
    Sapi.speak minute(time)
end if

if hour(time) > 12 then
    Sapi.speak "P.M."
else
    if hour(time) = 0 then
        if minute(time) = 0 then
            Sapi.speak "Midnight"
        else
            Sapi.speak "A.M."
        end if
    else
        if hour(time) = 12 then
            if minute(time) = 0 then
                Sapi.speak "Noon"
            else
                Sapi.speak "P.M."
            end if
       else
            Sapi.speak "A.M."
       end if
    end if
end if

Как только Вы скопировали этот код в блокнот, сохраните его в файл “Startup greeting.vbs”. Теперь, сохранив файл, Вы можете дважды щелкнуть по файлу VBScript, чтобы услышать, как он приветствует Вас и определяет Вам время.

Если Вы хотите, чтобы компьютер говорил, когда Вы включаете свой компьютер, как Джарвис из Железного человека ? , выберите файл и перетяните его к “Кнопке Пуск”. Не отпуская Вашу мышь, найдите папку »Автозапуск» и отпустите там мышку. Таким образом скрипт будет исполняться при каждом запуске Windows.

Если, по некоторым причинам это у Вас не работает, Вы можете также вручную перейти к папке автозапуска. Вы сначала перейдете в папку, в которой находится Ваш “Startup greeting.vbs” и скопируйте его.

Перейдите в папку

C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Добавление файла в меню автозагрузки
Заменив USERNAME на Ваше имя пользователя

Как только Вы окажетесь в папке автозапуска, вставьте в нее vbs файл. Теперь, в следующий раз, когда Вы включите свой компьютер и авторизуетесь, он должен автоматически приветствовать Вас и сообщить Вам о том, сколько времени.