Объект Device/Методы/StartSpeechRecognition: различия между версиями
Перейти к навигации
Перейти к поиску
Jugin (обсуждение | вклад) |
Jugin (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 12: | Строка 12: | ||
|- | |- | ||
|'''Words''' | |'''Words''' | ||
| | |параметры распознавания. Для распознавания '''Sphinx''' в этом параметре можно задавать слова, которые необходимо распознавать, в виде отдельных слов разделенных запятыми (по умолчанию '''да,нет,выход,ноль,один,два,три,четыре,пять,шесть,семь,восемь,девять,десять'''), параметры распознавания в режиме [[KWS]] или в виде [[JSGF| JSGF грамматики]]. Для распознавания '''Google''' этот параметр игнорируется, для распознавания '''Yandex''' следует использовать следующие языковые модели: notes — тексты, dates — даты, names — имена, numbers — числа, music — музыка, buying — заказы (по умолчанию - notes). | ||
|- | |- | ||
|'''StopWords''' | |'''StopWords''' | ||
Строка 50: | Строка 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
|