Меню Рубрики

Windows speech api windows 7

SAPI 5.4 для Windows 7. Реализация технологии Text-To-Speech в Delphi 2010.

Не так давно (26 марта 2010 года) я рассказывал Вам о том, как применить технологию Text-To-Speech (чтение текста голосом) в Delphi 2010 с использованием Speech API (SAPI) Windows. И всё бы было хорошо, если б не одно маленькое, но суровое “НО”. Дело в том, что при запуске проекта не из IDE Delphi вызов метода Speak у интерфейсов IspVoice и ISpeechVoice вызывал ошибку “Floating Point Division By Zero” (деление на ноль). При этом в Windows XP программа работала без проблем. Ошибку эту обнаружил читатель с ником ziz.
В поисках решения проблемы я решил немного расширить статью и рассмотреть ещё несколько моментов по работе с технологией Text-To-Speech в Delphi. Сегодня рассмотрим работу SAPI 5.4. с использованием объекта TspVoice. Так что импортируйте библиотеку SAPI 5.4. для Windows 7, генерируйте модуль SpeechLib_TLB.pas, как это рассказано в предыдущем посте и начнем.

Вначале реализуем чтение голосом какого-либо отрывка текста с использованием класса TspVoice.

Здесь мы используем асинхронный вывод. К слову сказать, синхронный вывод от асинхронного отличается тем, что асинхронный вывод используется в случае, когда в процессе синтеза речи программа должна выполнять какие-то дополнительные действия (подсвечивать синтаксис, обрабатывать данные в потоке и т.д.). В Windows 7 мне так и не удалось реализовать синхронный вывод (флаг SVSFDefoult) и с чем это связано пока сказать не могу. У кого-нибудь есть идеи на этот счёт?
Так что пока будем использовать везде асинхронный вывод.
Двигаемся дальше и попробуем изменить свойства голосового движка.

Характеристики голоса

Любой голосовой движок, использующий SAPI имеет следующие характеристики:
Volume – громкость голоса. Целочисленное значение. Изменяется линейно в диапазоне от 0 до 100. То есть значение 50 будет соответствовать половине предельной громкости используемого голоса.
Rate – скорость воспроизведения текста голосом. Может принимать значения от -10 до 10. Значение по умолчанию 0. Соответственно отрицательные значение характеристики замедляют произношение, положительные – ускоряют. SAPI 5-х версий не поддерживают значения Rate больше 10 или меньше -10, т.е. если Вы устанавливаете значение Rate=11, то голос будет воспроизводиться на скорости 10.
Попробуем реализовать изменение характеристик голоса в нашей программе. Разместим на форме два компонента TrackBar и 2 Label как показано на рисунке:

Соответственно первый TrackBar будет изменять громкость от 0 до 10, а второй – скорость от -10 до 10.
Теперь перенесем переменную gpIVTxt: TSpVoice в секцию public класса TForm1 и будем создавать класс TspVoice в момент создания формы, т.е.:

Обработчики OnChange у TrackBar’ов будут следующими:

Теперь запустите приложение и попробуйте изменять значение Rate и Volume во время произношения фразы. Т.к. используется асинхронный вывод, то характеристики голоса изменяются “на лету”.
Английский голос – это конечно здорово, но как быть с русскими голосами в SAPI? Посмотрим как можно использовать русскоязычные движки в своей программе.

SAPI и русские голоса.

В качестве русскоязычного движка я выбрал движок от Acapela Group c названием “Алёна”. Неплохой движок с пробным периодом в 30 дней. Какой движок выберите Вы – значения не имеет, т.к. работать мы будем с SAPI не влезая в особенности каждого движка, т.е., следуя схеме:

Будем использовать два верхних уровня.
Итак, для того, чтобы получить сведения о всех голосовых движках, установленных в системе, нам понадобится воспользоваться интерфейсом ISpeechObjectTokens, который имеет всего одно свойство Count – количество голосовых движков, установленных в системе. И один метод:

возвращающий элемент коллекции ISpeechObjectTokens. Для того, чтобы перечисли все движки в системе, можно воспользоваться следующей процедурой:

Здесь мы вначале запрашиваем методом GetVoices все голоса поддерживаемые объектом TspVoice. И затем выводим в ListBox описания голосов. Результат будет выглядеть следующим образом:

Теперь мы можем назначить нашему объекту голос, например так:

В этом случае будет использоваться голос “Anna (English)”. А так:

Голос “Alyona (Ruusian)”.
При этом для нас нет разницы какой из голосов мы используем – русский или английский, встроенный в систему или скачаный с какого-нибудь варезника и установленный вручную – подход к управлению один и тот же (см. схему).
Для того, чтобы вывести сведения о голосов ListBox мы использовали в качестве данных – описание голоса. Кроме этого, каждый голос в системе может содержать следующие полезные атрибуты:

  1. Name – имя;
  2. Gender – пол;
  3. Age – возраст;
  4. Language – язык;
  5. Vendor – создатель;

Для того, чтобы получить значения какого-либо атрибута необходимо воспользоваться методом ISpeechObjectToken:

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

А в запущенном приложении так:

Использовать значения атрибутов можно, например, при получении списка голосов. При этом строка поиска должна иметь следующий формат:

Следующие два вызова метода GetVoices абсолютно идентичны и в результате вернут 2 установленных в моей системе голоса:

Источник

Microsoft Speech API

Speech Application Programming Interface (SAPI) – интерфейс программирования приложений, основанный на технологии COM и предназначенный для распознавания и синтеза речи.

Microsoft Speech API активно используется в программах по преобразованию текста в голос (читалках), а также для голосового управления операционной системой и отдельными программами.

SAPI 4.0 вышел в 1998 году. Он входил в состав пакета SDK, содержащего инструменты для распознавания и синтеза речи. Также он входил в операционную систему Microsoft Windows 2000 (только с возможностью синтеза речи).

Версия SAPI 5.1 вышла в 2001 году как составная часть Speech SDK 5.1. Эта версия входила в состав операционной системы Microsoft Windows XP.

В операционной системе Microsoft Windows Vista установлена версия SAPI 5.3, а в Microsoft Windows 7 – SAPI 5.4.

Распознавание речи

  • Распознавание речи – процесс преобразования произнесённых слов в печатный текст. Распознавание речи включает в себя:
  • захват и оцифровку звука, произнесённого в микрофон;
  • преобразование оцифрованного звука в фонемы;
  • конструирование из фонем слов;
  • анализ контекста, в котором было произнесено слово, и, при необходимости, замена слов на похожие по звучанию.
  • Распознающая программа (движок распознавания текста) итерационно сравнивает распознанный текст с правилами грамматики приложения и при совпадении текста с серией правил формирует выходной поток XML с использованием языка разметки семантики (англ. Semantic Markup Language, SML). Выходной поток содержит распознанный текст, значения вероятностей правильного распознания и может содержать семантические значения, присвоенные при помощи разметки интерпретации семантики. Распознанный текст обычно используется для ввода данных при помощи диктовки и для управления приложениями при помощи речевых команд.
  • Размер правил грамматики ограничивает возможности распознавания текста. Большинство программ, поддерживающих диктовку, для обеспечения наиболее точного распознавания настраиваются на речевые обороты конкретного пользователя. Режим управления речевыми командами более прост для реализации, поскольку содержание правил грамматики ограничено имеющимися командами.

Синтез речи

Синтез речи – процесс преобразования текста в произносимые слова. Синтез речи включает в себя:

  • разделение слов на фонемы;
  • нахождение текста, требующего преобразование в символы, такого как числа, количество валюты и пунктуация;
  • генерация цифрового звука для воспроизведения.

Движки преобразования текста в речь могут использовать один из двух способов синтеза голоса:

  • генерировать звуки, подобные издаваемым голосовыми связками и использовать различные фильтры для моделирования длины горла, форму ротовой полости, расположение губ и языка;
  • собирать его из многочисленных кусков речи, записанных диктором.

Примечание

Поскольку большинство современных операционных систем Microsoft Windows уже содержат SAPI4 или SAPI5, то устанавливать их не нужно. Однако возможны случаи, когда такая необходимость возникает.

Будьте особенно внимательны при установке библиотеки SAPI 5.1 – установка этой версии на компьютеры, где уже установлена высшая версия SAPI (5.3 или 5.4), может привести к ухудшению работы программ, его использующих.

Источник

Настройка параметров речи в Windows 7

Поддержка Windows 7 прекращена 14 января 2020 г.

Чтобы продолжить получать обновления системы безопасности от Майкрософт, мы рекомендуем перейти на Windows 10.

С помощью диалогового окна «Свойства речи» вы можете настраивать параметры распознавания речи Windows и преобразования текста в речь.

Откройте программу распознавания речи. Для этого нажмите кнопку Пуск , выберите Панель управления, Специальные возможности, а затем Распознавание речи.

На левой панели нажмите Дополнительные параметры речи.

В следующей таблице описаны параметры на вкладке «Распознавание речи».

Выводит список доступных систем распознавания речи. Выберите нужную систему.

Распознавание речи доступно только на английском, испанском, китайском (упрощенное и традиционное письмо), немецком, французском и японском языках.

Показывает дополнительные свойства системы. Набор свойств зависит от типа системы, и не у всех систем есть дополнительные свойства.

Профили распознавания речи

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

Добавляет профиль пользователя. Запускается мастер добавления профиля, где можно настроить профиль и калибровать микрофон и динамики. Автоматически запускается мастер настройки микрофона.

Удаляет выбранный профиль. Удаляемый профиль не должен использоваться другими программами.

Запускает мастер обучения распознаванию речи. Этот мастер поможет повысить точность распознавания, изучив вашу манеру разговора и посторонние звуки.

Запускать распознавание речи при запуске компьютера

Запускает программу распознавания речи при включении компьютера.

Просмотреть документы и почту для повышения точности

Позволяет программе распознавания речи проверять документы и сообщения электронной почты на компьютере, запоминая часто используемые слова и фразы. Это помогает повысить точность распознавания.

Включить активацию функции речи

Запускает программу распознавания речи в спящем режиме и позволяет переводить ее в спящий режим с помощью команды «Перестать слушать».

Число пробелов, вставляемых между предложениями

Задает число пробелов, вставляемых после знаков препинания, обозначающих конец предложения, при диктовке текста с помощью распознавания речи.

Указывает уровень звука микрофона.

Открывает диалоговое окно «Звук». Вы можете настроить параметры устройств записи звука.

Позволяет задать предпочитаемое аудиоустройство, например входное устройство для распознавания речи. Эта кнопка будет активна, только если установлено по крайней мере одно аудиоустройство.

Запускает мастер настройки микрофона. Это помогает калибровать входные аудиоустройства и уровни динамиков.

В следующей таблице описаны параметры преобразования текста в речь на вкладке «Текст в речь».

Выводит список доступных голосов. Выберите голос, чтобы активировать его. После выбора голоса обработчик преобразования текста в речь произнесет текст для проверки этого голоса.

Показывает дополнительные сведения об обработчике преобразования текста в речь или его параметры. Отображаемые сведения зависят от типа обработчика, и не у всех обработчиков есть дополнительные свойства.

Использовать следующий текст для пробы голоса

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

Проговаривает текст в поле Использовать следующий текст для пробы голоса с помощью выбранного голоса. Каждое слово выделяется, когда обработчик проговаривает его. Во время пробы голоса текст кнопки изменяется на «Остановить», что позволяет завершить проверку. После завершения (или остановки) проверки кнопка «Остановить» снова изменится на кнопку «Проба голоса».

Регулирует скорость голоса для преобразования текста в речь.

Открывает диалоговое окно «Звук». Вы можете настроить параметры устройств воспроизведения звука.

Нажмите эту кнопку, чтобы задать предпочитаемое аудиоустройство для преобразования текста в речь. Эта кнопка будет активна, только если установлено по крайней мере одно аудиоустройство.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Windows speaker config 1
  • Windows sonic или dolby atmos
  • Windows sonic для наушников что это
  • Windows sonic для наушников windows 10
  • Windows software licensing rearm