Введение
Microsoft Speech Platform (Речевая платформа Microsoft) — это набор программных модулей и средств разработки, позволяющих разработчикам создавать приложения и сервисы с поддержкой речевых технологий (распознавание речи и синтез речи по тексту), а пользователям взаимодействовать с такими приложениями. В официальных анонсах можно встретить указание на то, что Речевая платформа является, в определённой степени, развитием речевых технологий Microsoft, известных под общим названием Microsoft Speech API (MS SAPI), однако это вполне самостоятельный программный продукт, который можно установить в системе независимо от того, присутствует ли в ней MS SAPI или нет.
Речевая платформа включает в себя компоненты времени выполнения Microsoft Speech Platform Runtime, которые необходимо установить всем желающим использовать платформу; средства разработки речевых приложений и служб Microsoft Speech Platform SDK, которые необходимы исключительно разработчикам программного обеспечения; а также языковые модули Language Runtime , устанавливаемые по выбору пользователя. Сейчас, в речевой платформе версии 11.0 поддерживаются 26 языков (в их числе и русский.
Требования к системе
На официальном сайте Microsoft предлагаются следующие минимальные и рекомендуемые требования к аппаратному и программному обеспечению систем, в которых предполагается использовать Microsoft Speech Platform Runtime 11 и Microsoft Speech Platform SDK 11.
Требования к программному обеспечению
Microsoft Speech Platform SDK 11 можно устанавливать на следующие операционные системы:
Операционная система | Редакция | Тип процессора |
Windows Vista | Все, кроме Starter Edition | 32-бит, 64-бит |
Windows 7 | Все, кроме Starter Edition | 32-бит, 64-бит |
Windows Server 2008 | Service Pack 2 | 32-бит, 64-бит |
Windows Server 2008 | R2 | 64-бит |
Внимание: Microsoft Speech Platform SDK 11 (за исключением Microsoft Grammar Development Tools) не поддерживается на Windows XP.
Разработка речевых приложений поддерживается на:
- Windows Vista или более поздняя ерсии
- Windows Server 2003 или более поздней версии
- Windows Server 2008 или более поздней версии
Развёртывание речевых приложений поддерживается на:
- Windows Server 2003 или более поздней версии
- Windows Server 2008 или более поздней версии
Требования к аппаратному обеспечению
Минимальные аппаратные требования:
- Процессор с тактовой частотой 1 ГГц
- Оперативная память 512 Мб
- Жёсткий диск 10 Гб
- сетевой адаптер Ethernet
- видеокарта, совместимая с DirectX9 с поддержкой 2.0 пиксельных шейдеров и вершинных шейдеров (используется для отрисовки изображений и средствах разработки пользовательского интерфейса)
- USB 2.0
Рекомендуемая аппаратная конфигурация:
- Процессор Dual 2 ГГц
- Оперативная память 1 Гб
- жесткий диск SATA 40 + Гб
- сетевой адаптер Ethernet
- Видеокарта, совместимая с DirectX9 с поддержкой 3.0 пиксельных шейдеров и вершинных шейдеров
- Два хост-контроллера USB 2.0, которые необходимы при одновременном использовании эмуляции DVD и инструментов анализа производительности
Установка Microsoft Speech Platform SDK 11
Установка речевой платформы не представляет существенных трудностей. Ниже даются рекомендации и ссылки на страницы с компонентами, необходимыми для установки Microsoft Speech Platform 11.
Стало интересно, насколько хорошо Microsoft Speech умеет распознавать речь. В качестве источника для распознавания я решил взять аудиопоток переговоров полиции с сайта youarelistening.to.
Существует два неймспейса System.Speech и Microsoft.Speech. Как я понял, чтобы использовать Microsoft.Speech, необходимо установить Microsoft Speech Platform Runtime и Microsoft Speech Platform SDK. А System.Speech уже есть в последних версиях .NET Framework.
Будем использовать System.Speech, т.к. в этом случае поддерживается диктовка, а в случае Microsoft.Speech — нет.
Еще нам потребуется библиотека для работы со звуком NAudio. Там есть пример Mp3StreamingDemo, который умеет работать с потоковым аудио. Он нам и нужен. Создаем свой проект. Из MP3StreamingPanel перетаскиваем к себе метод StreamMp3 и все что ему потребуется. Добавляем ссылку на NAudio.
В нашем классе создаем метод StartStreaming, который запустит StreamMp3 в отдельном потоке:
Конструктор нашего класса будет создавать и конфигурировать SpeechRecognitionEngine, В качестве грамматики будем использовать диктовку:
Данные из буфера копируем в MemoryStream, который передаем в SetInputToAudioStream. Тут необходимо правильно задать параметры формата аудио. Метод SetInputToWaveStream у меня не заработал.
Манипуляции с флагом completed и циклом с Thread.Sleep я взял из документации к Speech API. По какой-то причине без этого цикла распознавание не происходит.
Теперь осталось модифицировать заимствованный метод StreamMp3. Как только буфер почти заполнен, считываем из него данные:
И можно запускать:
Кончно же, на выходе получается полная околесица:
поэтому я пытаюсь встать и запустить MS Speech Platform 11 + SDK + Русский язык для TTS и SR
- Установка SpeechPlatformRuntime.x64.msi
- Установка MicrosoftSpeechPlatformSDK.x64.msi — Оба исправляются папка «Program Files».
- Установка MSSpeech_SR_ru-RU_TELE.msi
- Установка MSSpeech_TTS_ru-RU_Elena.msi — Оба идут в папку «Program Files (x86)». — это нормально?
Кажется, что нет, потому что, когда я смотрю SpeechRecognitionEngine.InstalledRecognizers(), он возвращает 2 элемента:
Но я никогда не устанавливал эти распознаватели. Я просмотрел компонент Win 7 и не могу найти никакого отношения к этому.
- Требуется ли устанавливать языки в x64 Program Files? Если да, то как это сделать?
- Как настроить распознаватель и синтезатор для просмотра языков ru-RU?
Любая помощь очень ценится.
Использование Orca (инструкции по установке здесь) изменить MSSpeech_SR_ru-RU_TELE.msi и другие языки, которые вы хотели бы установить:
Перейдите к View → Summary Information и установите Platform: x64 .
Перейдите в таблицу Directory и измените все вхождения:
Установите выбранные языки.
Поместите файл Microsoft.Speech.dll в папку проекта «Внешние ресурсы» и отправьте ссылку на эту DLL. (Я не могу найти способ ссылки на эту DLL из VS без этого трюка).
Я нашел очень хороший способ исправить эти «Runtime Languages» (версия 11).
Я использую Windows 7 64bit, и когда я впервые попытался установить эти Языки речи, они не были указаны в системе. Поэтому я искал решение.
Я нашел французский веб-сайт, объясняющий, что нам нужно изменить некоторые ключи реестра. Этот метод работает, но он очень длинный, и он оставляет много неиспользуемых ключей в вашем реестре.
Итак, почему бы просто не исправить ошибку в источнике? Файл установщика MSI!
Необходимые инструменты:
Для этого вам понадобится редактор MSI. Я использую » InstEd 1.5«, который кажется идеальным для того, что нам нужно делать. и это бесплатно!
Вы можете скачать его по адресу: www.instedit.com
Шаги:
В этом примере я исправлю этот файл: » MSSpeech_TTS_ru-US_Helen.msi»
Это та же процедура для любых других «Runtime Languages».
Во-первых, Удалите все «неработающие» языки выполнения.
Откройте MSSpeech_TTS_ru-US_Helen.msi с «InstEd 1.5»
Выберите вкладку Таблицы.
Нажмите на таблицу с именем: » Реестр«
Вы увидите список ключей реестра. Это должно выглядеть так:
«ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ MicrosoftSpeech Serverv11.0VoicesTokensTTS_MS_ru-US_Helen_11.0» «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ MicrosoftSpeech Serverv11.0VoicesTokensTTS_MS_ru-US_Helen_11.0Attributes»
Выбрать все строки (Ctrl + A)
Щелкните правой кнопкой мыши на выделение, затем «Вырезать строки» (или используйте Ctrl + Shift + X)
Откройте свой любимый Текстовый редактор и Вставить внутри него.
В текстовом редакторе вам нужно заменить каждую строку «Speech Serverv11.0» на «Речь» (используйте Ctrl + H и » Заменить все» )
В текстовом редакторе: Выбрать все (Ctrl + A) и Копировать ( Ctrl + C)
Вернитесь к «InstEd 1.5»
Щелкните правой кнопкой мыши в «окне реестра», затем «Вставить строки»
Сохранить ваш файл с фиксированной MSI!
Установите ваш фиксированный файл MSI!