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

Cor*_*ein 14 siri macos-sierra

我在手机上使用Siri,并观察在旅途中创建提醒.当我在办公室时,我不想通过使用Siri打扰安静,因此我通常使用与Reminders应用程序集成的Alfred工作流程,或直接使用Reminders应用程序.

但是,两者都有一个相当笨重的接口,如果我只需在命令行输入就会容易得多:

$ siri "remind me to check stack overflow for responses to my question in 15 minutes"
Run Code Online (Sandbox Code Playgroud)

macOS Sierra已将Siri引入桌面,但到目前为止,我一直无法找到与Siri进行交互的方式,除了字面上大声说话之外,Spotlight与Siri的语言理解并不相符.

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

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

注意:据我所知,这个问题可以在Ask Different,超级用户或Unix和Linux上找到更好的家.最后,我决定与API或SDK进行一些程序化集成是最可能的解决方案,因此Stack Overflow似乎是最适合发布的地方.如果mods不同意,请迁移到最适合的社区.

小智 8

我今天想要相同的功能 - 我让它工作但可以改进:https://youtu.be/VRLGCRrReog

TLDR使用Rogue Amoeba的LoopBack并将Siri的输入Mic改为Loopback.然后在终端中使用Say命令.


Bra*_*rks 6

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

如何启用它:

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

从这里获取:https ://www.macworld.co.uk/news/mac-software/how-use-siri-on-mac-3536158/


Rom*_*man 5

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

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

该脚本使用键盘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')
Run Code Online (Sandbox Code Playgroud)