P i*_*P i 6 macos speech-recognition speech-to-text dictation
由于受伤,我在MacOS上使用命令:
从屏幕截图可以看出,我可以使用键盘快捷键对其进行切换。
我希望从代码中切换它(最好是ObjC)。
我可以手动注入事件:
// Assumes CTRL OPT CMD Space toggles dictation
void toggle_dictation()
{
// NOTE: To return created event in tap-callback:
// cgEvent = [my_nsEvent CGEvent];
// CFRetain(cgEvent);
//unsigned short keyCode_SPACE = 49;
NSEvent* down_event = [NSEvent keyEventWithType: NSEventTypeKeyDown
location: NSZeroPoint
modifierFlags: NSEventModifierFlagControl | NSEventModifierFlagOption | NSEventModifierFlagCommand
timestamp: 0.0
windowNumber: 0
context: nil
characters: @" "
charactersIgnoringModifiers: @" "
isARepeat: false
keyCode: 0 /* keyCode_SPACE */ ];
NSEvent* up_event = [NSEvent keyEventWithType: NSEventTypeKeyUp
location: NSZeroPoint
modifierFlags: 0
timestamp: 0.0
windowNumber: 0
context: nil
characters: @" "
charactersIgnoringModifiers: @" "
isARepeat: false
keyCode: 0 /* keyCode_SPACE */ ];
CGEventPost(kCGHIDEventTap, [down_event CGEvent]);
CGEventPost(kCGHIDEventTap, [up_event CGEvent]);
}
Run Code Online (Sandbox Code Playgroud)
...但是这很笨拙,因为它取决于我选择的快捷方式。
有什么方法可以通过API调用吗?
就在这里:
NSSpeechRecognizer *recognizer = [[NSSpeechRecognizer alloc] init];
// start
[recognizer startListening];
// stop
[recognizer stopListening];
Run Code Online (Sandbox Code Playgroud)
完整的 API 在这里:
https://developer.apple.com/documentation/appkit/nsspeechrecognizer?language=objc
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |