Проверка, включены ли голосовые команды? - PullRequest
1 голос
/ 11 ноября 2010

Есть ли способ проверить, активировал ли пользователь распознавание речи (голосовые команды) в Системных настройках?(Mac OS X).Если у пользователя это включено, я хотел бы поддержать дополнительные речевые команды.К сожалению, в NSSpeechRecognizer нет способа проверить это, и я не могу найти ни одной функции Carbon, чтобы проверить это тоже.

Одна из проблем заключается в том, что круглое окно Speech Commands (с микрофоном на нем), кажется, периодически появляется всякий раз, когда я создаю экземпляр NSSpeechRecognizer.Кроме того, оно часто останавливает мое приложение примерно на полсекунды или около того, пока создается объект (возможно, он запускает службу распознавания речи).

По сути, если распознаватель речи еще не запущен и не используется, я не хочу его запускать.Но если пользователь активно использует распознаватель речи, я хотел бы предоставить ему дополнительную поддержку.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 ноября 2010

Как подсказывает ответ @ Yuji, похоже, единственный способ проверить, работает ли сервер распознавания речи или нет.Вот фрагмент кода, на случай, если кому-то это тоже понадобится.

+(BOOL) speakableItemsEnabled {
    NSString* speechServerBundleName = @"com.apple.speech.recognitionserver";
    NSArray* apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:speechServerBundleName];
    NSRunningApplication* speechServerApp = [apps lastObject];
    return speechServerApp && !speechServerApp.terminated;
}

Надеюсь, это не сломается в 10.7 "Лев".

1 голос
/ 12 ноября 2010

Я тоже не знаю публичного API; но окно круглого микрофона управляется SpeakableItems.app, по крайней мере, в OS X 10.6. Вы можете проверить список процессов и / или список запущенных приложений, чтобы увидеть, есть ли он там.

...