在 macOS 中通过命令行与 Siri 交互

问题描述 投票:0回答:5

我在手机和手表上使用 Siri 随时随地创建提醒。当我在办公室时,我不想使用 Siri 打扰安静,所以我通常使用与提醒应用程序集成的 Alfred 工作流程,或者直接使用提醒应用程序。

但是,两者都有一个相当笨拙的界面,如果我可以在命令行中输入,那就容易多了:

$ siri "remind me to check stack overflow for responses to my question in 15 minutes"

macOS Sierra 将 Siri 引入了桌面,但到目前为止,除了字面上大声说话之外,我一直无法找到与 Siri 交互的任何方式,而 Spotlight 与 Siri 的自然语言理解能力并不匹配。

Apple 已经发布了 Siri SDK,但它似乎主要与向 Siri 添加功能有关,而不是为了公开 Siri API。

Apple 是否向 macOS 上的 Siri 公开任何类型的 API,以便人们可以通过命令行、系统调用或其他可执行文件发出 Siri 请求?

注意:我知道这个问题可以在 Ask Different、Super User 或 Unix & Linux 中找到更好的归宿。最后,我认为与 API 或 SDK 进行某种编程集成是最可能的解决方案,因此 Stack Overflow 似乎是最合适的发布位置。如果管理员不同意,请迁移到最好的社区。

macos-sierra siri
5个回答
8
投票
这不是来自命令行,而是更接近......我还没有测试过它,但在 High Sierra 中,有一种方法可以使用辅助功能设置,使您能够使用键盘询问 Siri 问题。

如何启用它:

    系统偏好设置 > 辅助功能 > Siri。
  • 单击
  • Enable Type to Siri
     旁边的框,以便出现一个勾号。
  • 现在,当您触发 Siri 时,将会出现一个键盘,您可以在其中输入查询。
从这里抓取:

https://www.macworld.co.uk/news/mac-software/how-use-siri-on-mac-3536158/


8
投票
我今天想要同样的功能 - 我让它工作了,但可以改进:

https://youtu.be/VRLGCRrReog

TLDR 是使用 Rogue Amoeba 的 LoopBack 并将 Siri 的输入麦克风更改为 Loopback。然后在终端中使用 Say 命令。


5
投票
正如 Brad Parks 所提到的,您可以从“辅助功能”菜单中启用“输入 Siri”。您可以使用它通过模拟按键与 Siri 进行交互。

我创建了一个简单的 Python 脚本,当从命令行调用时,其行为类似于您问题中的请求。

该脚本使用

keyboard Python 模块。

#!/usr/bin/python import sys import time import keyboard def trigger_siri(): keyboard.press('command+space') time.sleep(0.3) keyboard.release('command+space') time.sleep(0.2) # Wait for Siri to load if __name__=='__main__': trigger_siri() keyboard.write(sys.argv[1]) keyboard.send('enter')
    

3
投票

Cliclick 是一个很棒的(免费的)工具,用于通过命令行触发鼠标和键盘事件。安装 Cliclick 后,我启用了“键入 Siri”(系统偏好设置 > 辅助功能 > Siri)。我还将 Siri 的键盘快捷键更改为“按 Fn(功能)空格键”(系统偏好设置 > Siri)。其他键盘快捷键选项要求您“按住”一个键,这是可以完成的,但它使事情变得有点棘手。

完成所有这些后,我可以从终端调用 Siri,如下所示:

$ cliclick kd:fn kp:space ku:fn w:250 t:"turn on the living room lights" kp:return

更进一步,如果您熟悉

终端别名和函数,您可以创建一个“siricli”函数:

siricli(){ cliclick kd:fn kp:space ku:fn w:250 t:"$1" kp:return }

添加该功能后打开一个新的终端窗口,现在您可以从命令行调用 Siri,如下所示:

siricli "turn on the living room lights"
    

0
投票
如果您在“设置”中启用

Type to Siri

,您可以使用像这样的 AppleScript(您可以通过终端的 osascript 或快捷方式调用它):

on run {input, parameters} tell application "System Events" key code 49 using {shift down, command down} delay 0.5 keystroke "Listen to the News" delay 0.2 key code 36 delay 1 set visible of application process "Podcasts" to false end tell return input end run
如果您的 Siri 快捷键不是 cmd+shift+space,请查看

此页面

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.