Объект Device/Методы/StartSpeechRecognition: различия между версиями
Перейти к навигации
Перейти к поиску
Jugin (обсуждение | вклад) |
Jugin (обсуждение | вклад) |
||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 5: | Строка 5: | ||
==Синтаксис== | ==Синтаксис== | ||
:<syntaxhighlight lang="c"> | :<syntaxhighlight lang="c"> | ||
StartSpeechRecognition (BSTR Words, BSTR StopWords, VARIANT CallbackFunction) | StartSpeechRecognition (BSTR Words, BSTR StopWords, VARIANT CallbackFunction, LONG DeferredTime) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Параметры== | ==Параметры== | ||
Строка 14: | Строка 12: | ||
|- | |- | ||
|'''Words''' | |'''Words''' | ||
| | |параметры распознавания. Для распознавания '''Sphinx''' в этом параметре можно задавать слова, которые необходимо распознавать, в виде отдельных слов разделенных запятыми (по умолчанию '''да,нет,выход,ноль,один,два,три,четыре,пять,шесть,семь,восемь,девять,десять'''), параметры распознавания в режиме [[KWS]] или в виде [[JSGF| JSGF грамматики]]. Для распознавания '''Google''' этот параметр игнорируется, для распознавания '''Yandex''' следует использовать следующие языковые модели: notes — тексты, dates — даты, names — имена, numbers — числа, music — музыка, buying — заказы (по умолчанию - notes). | ||
|- | |- | ||
|'''StopWords''' | |'''StopWords''' | ||
Строка 20: | Строка 18: | ||
|- | |- | ||
|'''CallbackFunction''' | |'''CallbackFunction''' | ||
|пользовательская функция прерывания процесса распознавания. По умолчанию - отсутствует. | |пользовательская функция обратного вызова (callback) прерывания процесса распознавания. По умолчанию - отсутствует. | ||
|- | |||
|'''DeferredTime''' | |||
|Время в мс включения отложенного распознавания относительно следующего звукового сообщения. Если значение положительно, распознавание будет включено через указанное время после начала произнесения следующего звукового сообщения. Если отрицательно относительно времени завершения произнесения следующего голосового сообщения. По умолчанию: 0 - отложенное распознавание не используется. | |||
|} | |} | ||
Строка 49: | Строка 50: | ||
Device.StartSpeechRecognition (Words, StopWords, Check); | Device.StartSpeechRecognition (Words, StopWords, Check); | ||
</syntaxhighlight> | |||
Пример использования отложенного распознавания: | |||
<syntaxhighlight lang="javascript"> | |||
// Вариант I | |||
Device.StartSpeechRecognition (Words, StopWords, Check, -2000); | |||
Device.Say ("CallOffice.wav"); // Распознавание будет включено за 2 секунды до окончания произнесения сообщения CallOffice.wav | |||
// Вариант II | |||
Device.StartSpeechRecognition (Words, StopWords, Check, 2000); | |||
Device.Say ("CallOffice.wav"); // Распознавание будет включено через 2 секунды после начала произнесения сообщения CallOffice.wav | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Описание== | ==Описание== | ||
:Метод позволяет распознать произнесенные пользователем слова, содержащиеся в словаре, подключаемом командой '''[[Объект_Device/Методы/InitSpeechRecognition|InitSpeechRecognition]]'''. | :Метод позволяет распознать произнесенные пользователем слова, содержащиеся в словаре, подключаемом командой '''[[Объект_Device/Методы/InitSpeechRecognition|InitSpeechRecognition]]'''. Если не используется пользовательская функция прерывания процесса распознавания, в случае распознавания законченной фразы (Endofutt = 1) будет выполнено прерывание текущей команды [[Объект_Device/Методы/Say|Say]] или [[Объект_Device/Методы/Listen|Listen]]. | ||
==Примеры== | ==Примеры== |
Текущая версия на 12:11, 17 сентября 2021
Метод StartSpeechRecognition включает распознавание голосовых команд.
Синтаксис
Параметры
Пользовательская функция может быть двух видов - выражение в виде текста на языке JavaScript возвращающее функцию или стандартный интерфейс IDispath. Пользовательская функция принимает три параметра:
Возвращает логическое выражение, при значении true распознавание прерывается.
Device.StartSpeechRecognition (Words, StopWords, "0, function (Text, Confidence, Endofutt) {if (Confidence > 0.3 and Endofutt) return true; return false;}");
function Check (Text, Confidence, Endofutt)
{
if (Endofutt) { // Если фраза распознана полностью
if (Confidence > 0.3) return true; // Если степень достоверности распознанного текста больше 0.3 завершаем распознавание
}
return false;
}
Device.StartSpeechRecognition (Words, StopWords, Check);
// Вариант I
Device.StartSpeechRecognition (Words, StopWords, Check, -2000);
Device.Say ("CallOffice.wav"); // Распознавание будет включено за 2 секунды до окончания произнесения сообщения CallOffice.wav
// Вариант II
Device.StartSpeechRecognition (Words, StopWords, Check, 2000);
Device.Say ("CallOffice.wav"); // Распознавание будет включено через 2 секунды после начала произнесения сообщения CallOffice.wav
Описание
Примеры
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 ();
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
|