Объект Device/Методы/StartSpeechRecognition: различия между версиями
Перейти к навигации
Перейти к поиску
Jugin (обсуждение | вклад) |
Jugin (обсуждение | вклад) |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 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''' | ||
|строка, содержащая слова, разделенные запятыми, останавливающие процесс распознавания голоса. По умолчанию - | |строка, содержащая слова, разделенные запятыми, останавливающие процесс распознавания голоса. По умолчанию - отсутствуют. | ||
|- | |- | ||
|'''CallbackFunction''' | |'''CallbackFunction''' | ||
|пользовательская функция прерывания процесса распознавания. | |пользовательская функция обратного вызова (callback) прерывания процесса распознавания. По умолчанию - отсутствует. | ||
|- | |||
|'''DeferredTime''' | |||
|Время в мс включения отложенного распознавания относительно следующего звукового сообщения. Если значение положительно, распознавание будет включено через указанное время после начала произнесения следующего звукового сообщения. Если отрицательно относительно времени завершения произнесения следующего голосового сообщения. По умолчанию: 0 - отложенное распознавание не используется. | |||
|} | |} | ||
Строка 28: | Строка 29: | ||
#Endofutt - (логическое) признак завершения фразы. | #Endofutt - (логическое) признак завершения фразы. | ||
Возвращает логическое выражение, при значении true распознавание прерывается. | Возвращает логическое выражение, при значении true распознавание прерывается. | ||
Пример пользовательской функции в виде выражения JavaScript: | Пример пользовательской функции в виде выражения JavaScript: | ||
<syntaxhighlight lang="javascript"> | |||
Device.StartSpeechRecognition (Words, StopWords, "0, function (Text, Confidence, Endofutt) {if (Confidence > 0.3 and Endofutt) return true; return false;}"); | |||
</syntaxhighlight> | |||
Пример пользовательской функции в виде обычной функции JavaScript: | |||
<syntaxhighlight lang="javascript"> | |||
function Check (Text, Confidence, Endofutt) | |||
{ | |||
if (Endofutt) { // Если фраза распознана полностью | |||
if (Confidence > 0.3) return true; // Если степень достоверности распознанного текста больше 0.3 завершаем распознавание | |||
} | |||
return false; | |||
} | |||
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> | |||
==Описание== | ==Описание== | ||
:Метод позволяет распознать произнесенные пользователем слова, содержащиеся в словаре, подключаемом командой '''[[Объект_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
|