Объект Device/Методы/InitSpeechRecognition: различия между версиями

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску
 
(не показано 16 промежуточных версий 3 участников)
Строка 5: Строка 5:
==Синтаксис==
==Синтаксис==
:<syntaxhighlight lang="c">
:<syntaxhighlight lang="c">
InitSpeechRecognition ([BSTR Parameters])  
InitSpeechRecognition (BSTR Parameters)  
</syntaxhighlight>
</syntaxhighlight>
|style="width:10%;"|__TOC__
|}
|}


==Параметры==
==Параметры==
Доступны три способа распознавание голоса - при помощи широко известной библиотеки '''Sphinx''' и ее голосовых баз, при помощи сервиса '''Google''' или '''Yandex'''.  
Доступны три способа распознавание голоса - при помощи широко известной библиотеки '''Sphinx''' и ее голосовых баз, при помощи сервиса '''Google''' или '''Yandex'''. Если не указан способ распознавания, по умолчанию используется '''Sphinx'''.
 
=== Распознавание голоса с использованием библиотеки Sphinx ===
=== Распознавание голоса с использованием библиотеки Sphinx ===
Для использования распознавания '''Sphinx''' в качестве параметра достаточно указать расположение файла конфигурации словаря. Можно указать как абсолютное расположение, так и расположение относительно каталога установки Call Office. Например, если Call Office установлен  в папку C:\Program Files\Call Office, а базы для распознавания в подкаталоге SpeechRecognition, то достаточно указать только относительный путь ''SpeechRecognition\\init.cfg'':
Для использования распознавания '''Sphinx''', значение параметра должно начинаться со слова '''Sphinx''' за которым могут идти параметры:
   InitSpeechRecognition ("SpeechRecognition\\init.cfg")
* '''ConfigFileName''' - имя конфигурационного файла Sphinx, по умолчанию <каталог установки Call Office>\SpeechRecognition\init.cfg. Можно указать как абсолютное расположение, так и расположение относительно каталога установки Call Office.
   InitSpeechRecognition ("Sphinx;ConfigFileName=SpeechRecognition\\init.cfg;")


=== Распознавание голоса с использованием сервиса Google ===
=== Распознавание голоса с использованием сервиса Google ===
Строка 24: Строка 25:
   InitSpeechRecognition ("Google;SingleUtterance=1")
   InitSpeechRecognition ("Google;SingleUtterance=1")
Для включения распознавания Google необходимо:
Для включения распознавания Google необходимо:
# Обратиться в [http://www.calloffice.ru/Autor/ службу технической поддержки] и получить специальную версию библиотеки, в которой включена возможность распознавания Google.
# Подробная инструкция по созданию ключа распознавания Google Cloud Platform [http://wiki.calloffice.ru/index.php/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D1%8E%D1%87%D0%B0_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_Google_Cloud_Platform Создание ключа распознавания Google Cloud Platform].  
# Зарегистрироваться в [https://console.cloud.google.com/ Google Cloud Platform] создать проект и включить в нем Google Cloud Speech API. Затем нужно создать ключ API Key или ключ сервисного аккаунта в формате json и сохранить в файл с именем application_default_credentials.json на диске в один из каталогов:
#* Каталог C:\Users\All Users\Call Office\
#* Каталог google по умолчанию: %APPDATA%\gcloud\ (обычно это: C:\Users\<имя пользователя>\AppData\Roaming\gcloud\)
#* Любой каталог на который указывает переменная окружения GOOGLE_APPLICATION_CREDENTIALS
# В некоторых случаях дополнительно нужно установить [https://www.microsoft.com/ru-ru/download/details.aspx?id=48145 Распространяемый пакет Visual C++ для Visual Studio 2015].
# В некоторых случаях дополнительно нужно установить [https://www.microsoft.com/ru-ru/download/details.aspx?id=48145 Распространяемый пакет Visual C++ для Visual Studio 2015].
Для получения триальной версии необходимо иметь google-аккаунт и пройти регистрацию на [https://console.cloud.google.com/freetrial странице получения триала].
Для получения триальной версии необходимо иметь google-аккаунт и пройти регистрацию на [https://console.cloud.google.com/freetrial странице получения триала].
Строка 34: Строка 31:
=== Распознавание голоса с использованием сервиса Yandex ===
=== Распознавание голоса с использованием сервиса Yandex ===
Для распознавания используя сервис '''Yandex''', значение параметра должно начинаться со слова '''Yandex''', за которым могут идти параметры:
Для распознавания используя сервис '''Yandex''', значение параметра должно начинаться со слова '''Yandex''', за которым могут идти параметры:
* '''Key''' - API Key сервиса Yandex. Обязательный параметр.
* '''Model''' - модель распознавания, ([https://cloud.yandex.ru/docs/speechkit/stt/models| описание на сайте Яндекс]).
   InitSpeechRecognition ("Yandex;Key=<ваш ключ>")
* '''Language''' - языки распознавания перечисленные через ; (точка с запятой) (не обязательный), ([https://cloud.yandex.ru/docs/speechkit/stt/models| описание на сайте Яндекс]).
* '''IsTextNormalization''' - нормализация распознанного текста, по умолчанию, включена, ([https://cloud.yandex.ru/docs/speechkit/stt-v3/api-ref/grpc/stt_service#TextNormalizationOptions| описание на сайте Яндекс]).
* '''IsProfanityFilter''' - фильтр ненормативной лексики, по умолчанию, выключен, ([https://cloud.yandex.ru/docs/speechkit/stt-v3/api-ref/grpc/stt_service#TextNormalizationOptions| описание на сайте Яндекс]).
* '''IsLiteratureText''' - переписывать текст в литературном стиле, по умолчанию, выключен, ([https://cloud.yandex.ru/docs/speechkit/stt-v3/api-ref/grpc/stt_service#TextNormalizationOptions| описание на сайте Яндекс]).
* '''IsPhoneFormattingMode''' - режим форматирования номера телефона, по умолчанию, включен, ([https://cloud.yandex.ru/docs/speechkit/stt-v3/api-ref/grpc/stt_service#TextNormalizationOptions| описание на сайте Яндекс]).
* '''IsPartialResults''' - получать промежуточные результаты распознавания, по умолчанию, выключено.
* '''IsFirst''' - использовать только первый результат распознавания. Необязательный параметр, по умолчанию, отключен. Яндекс возвращает несколько результатов распознавания, каждый из них может быть проанализирован. Если необходим только первый вариант, как правило, он наиболее правильный, нужно включить этот параметр в true, или 1.
* '''EouSensitivity''' - чувствительность к определению завершения фразы, по умолчанию, нормальная, допустимый параметр "high" - высокая чувствительность, ([https://cloud.yandex.ru/docs/speechkit/stt-v3/api-ref/grpc/stt_service#DefaultEouClassifier| описание на сайте Яндекс]).
* '''EouMaxPause''' - время между словами в мс, после которого фраза считается завершенной, ([https://cloud.yandex.ru/docs/speechkit/stt-v3/api-ref/grpc/stt_service#DefaultEouClassifier| описание на сайте Яндекс]).
Описание параметров потокового распознавания Yandex можно посмотреть [https://cloud.yandex.ru/docs/speechkit/stt/streaming здесь].
 
=== Распознавание голоса с использованием локального Vosk ===
Для распознавания используя  локальный '''Vosk''', значение параметра должно начинаться со слова '''VoskInternal''', за которым могут идти параметры:
* '''IsPartialResults''' - получать промежуточные результаты распознавания, по умолчанию, выключено.
   InitSpeechRecognition ("VoskInternal;IsPartialResults=1")
* '''IsProfanityFilter''' - фильтр ненормативной лексики, по умолчанию, выключен.
* '''IsDenormalization''' - преобразовать текст в числовые данные (сумма, дата и т. п.), по умолчанию, выключено.


==Описание==
==Описание==
:Метод подключает словарь со словами, распознаваемыми после команды '''[[Объект_Device/Методы/StartSpeechRecognition|StartSpeechRecognition]]'''.
:Метод выполняет подготовку распознавания. Распознавание включается командой '''[[Объект_Device/Методы/StartSpeechRecognition|StartSpeechRecognition]]'''.


==Примеры==
==Примеры==

Текущая версия на 17:51, 1 ноября 2023

Метод InitSpeechRecognition» подготавливает распознавание голоса.

Синтаксис

InitSpeechRecognition (BSTR Parameters)

Параметры

Доступны три способа распознавание голоса - при помощи широко известной библиотеки Sphinx и ее голосовых баз, при помощи сервиса Google или Yandex. Если не указан способ распознавания, по умолчанию используется Sphinx.

Распознавание голоса с использованием библиотеки Sphinx

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

  • ConfigFileName - имя конфигурационного файла Sphinx, по умолчанию <каталог установки Call Office>\SpeechRecognition\init.cfg. Можно указать как абсолютное расположение, так и расположение относительно каталога установки Call Office.
  InitSpeechRecognition ("Sphinx;ConfigFileName=SpeechRecognition\\init.cfg;")

Распознавание голоса с использованием сервиса Google

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

  • Key - API Key сервиса Google.
  • Language - язык распознавания. Полный список доступных языков здесь. По умолчанию русский: "ru-RU".
  • SingleUtterance - распознавание одной фразы. По умолчанию выключено.
  • InterimResults - получать промежуточные результаты распознавания. По умолчанию выключено.
  InitSpeechRecognition ("Google;SingleUtterance=1")

Для включения распознавания Google необходимо:

  1. Подробная инструкция по созданию ключа распознавания Google Cloud Platform Создание ключа распознавания Google Cloud Platform.
  2. В некоторых случаях дополнительно нужно установить Распространяемый пакет Visual C++ для Visual Studio 2015.

Для получения триальной версии необходимо иметь google-аккаунт и пройти регистрацию на странице получения триала.

Распознавание голоса с использованием сервиса Yandex

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

  • Model - модель распознавания, (описание на сайте Яндекс).
  • Language - языки распознавания перечисленные через ; (точка с запятой) (не обязательный), (описание на сайте Яндекс).
  • IsTextNormalization - нормализация распознанного текста, по умолчанию, включена, (описание на сайте Яндекс).
  • IsProfanityFilter - фильтр ненормативной лексики, по умолчанию, выключен, (описание на сайте Яндекс).
  • IsLiteratureText - переписывать текст в литературном стиле, по умолчанию, выключен, (описание на сайте Яндекс).
  • IsPhoneFormattingMode - режим форматирования номера телефона, по умолчанию, включен, (описание на сайте Яндекс).
  • IsPartialResults - получать промежуточные результаты распознавания, по умолчанию, выключено.
  • IsFirst - использовать только первый результат распознавания. Необязательный параметр, по умолчанию, отключен. Яндекс возвращает несколько результатов распознавания, каждый из них может быть проанализирован. Если необходим только первый вариант, как правило, он наиболее правильный, нужно включить этот параметр в true, или 1.
  • EouSensitivity - чувствительность к определению завершения фразы, по умолчанию, нормальная, допустимый параметр "high" - высокая чувствительность, (описание на сайте Яндекс).
  • EouMaxPause - время между словами в мс, после которого фраза считается завершенной, (описание на сайте Яндекс).

Описание параметров потокового распознавания Yandex можно посмотреть здесь.

Распознавание голоса с использованием локального Vosk

Для распознавания используя локальный Vosk, значение параметра должно начинаться со слова VoskInternal, за которым могут идти параметры:

  • IsPartialResults - получать промежуточные результаты распознавания, по умолчанию, выключено.
  InitSpeechRecognition ("VoskInternal;IsPartialResults=1")
  • IsProfanityFilter - фильтр ненормативной лексики, по умолчанию, выключен.
  • IsDenormalization - преобразовать текст в числовые данные (сумма, дата и т. п.), по умолчанию, выключено.

Описание

Метод выполняет подготовку распознавания. Распознавание включается командой StartSpeechRecognition.

Примеры

Пример на JavaScript
var Device = new ActiveXObject ("CallOffice.Device");
Device.Open ();
Device.InitSpeechRecognition ();
Device.LogFile = 'CallOffice.log';
Device.LogLevel = 255;
var Words = 'да, нет, выход, ноль, один, два, три, четыре, пять, шесть, семь, восемь, девять, десять';
var StopWords = 'выход';
Device.StartSpeechRecognition (Words, StopWords);
Device.Listen (30);
Device.StopSpeechRecognition (); 
if (Device.VoiceCommand) alert ('Вы сказали слово ' + Device.VoiceCommand);
else alert ('Ничего не произнесено');
Device.Close ();
Пример на VBScript
Dim Device
Set Device = CreateObject ("CallOffice.Device")
Device.Open
Device.LogFile = "CallOffice.log"
Device.LogLevel = 255
Device.InitSpeechRecognition
Words = "да, нет, выход, ноль, один, два, три, четыре, пять, шесть, семь, восемь, девять, десять"
StopWords = "выход"
Device.StartSpeechRecognition Words, StopWords
Device.Listen 30
Device.StopSpeechRecognition

If Device.VoiceCommand Then 
   MsgBox "Вы сказали слово ", Device.VoiceCommand
Else 
   MsgBox "Ничего не произнесено."
End If

Device.Close

Назад к методам объекта Device.