如何“说”到另一台Mac?


19

我家有两台Mac(iMac和MacBook Pro)。

我想使用say命令行实用程序在我的MBP上键入内容,并使其在iMac上说话,就像对讲系统一样。

另外,在我妻子使用iMac时向她发送消息可能很有趣。

能做到吗?


2
相关:XKCD 530 xkcd.com/530
Andrew Grimm

Answers:


26

由于两台Mac位于同一屋子里,因此我认为它们都在同一网络上。

首先,您需要Remote Login在需要声音的Mac上激活。

转到System Preferences > Sharing并选中Remote Login复选框。然后,使用计算机打开“终端”并键入

ssh <user>@<computer name.local>

<user>您妻子的登录<computer name>名在哪里,是另一台计算机的名称。

现在,就好像您在妻子的计算机上打开了终端,您可以say随便什么。


它说,事件没有发现
cbmeeks

@cbmeeks什么时候?您最近执行的命令是什么?
卢瓦克·沃尔夫

没关系。我做错了。很棒!大声笑谢谢
cbmeeks

2
我以前做过这个,与朋友一起编码时,很好的答案!
Moshe

2
您可以将命令合并为一行:ssh user@hostname 'say hello'
willWorkForCookies 2015年

20

除了用于ssh在远程主机上运行命令之外,您还可以使用Remote Apple Events(也具有say命令)以及其他可能对您有用的命令display alert

在目标计算机上,启用:

系统偏好设置>共享>远程Apple事件

然后从您的计算机运行以下脚本(在AppleScript编辑器中,或通过osascriptTerminal):

tell application "Finder" of machine "eppc://machine-name.local"
    say "Hello"
end tell

编译或运行它时,它将要求您进行身份验证。如果您在AppleScript编辑器中进行此操作,只要您保持AppleScript编辑器处于打开状态,它就会记住身份验证,因此您不必每次运行时都进行身份验证。(身份验证对话框还可以选择将您的凭据保存在“钥匙串”上,以避免再次受到干扰。)

您可以从终端中的命令行执行以下操作:

osascript -e 'tell application "Finder" of machine "eppc://machine-name.local" to say "Hello"'

如何在远程计算机上显示消息

您还可以通过使用ssh† 登录到远程计算机并在远程外壳程序中运行此命令来显示消息(这不使用Remote Apple Events,仅用于的远程登录ssh):

osascript -e 'say "Hello" without waiting until completion' -e 'tell application "System Events"' -e 'activate' -e 'display alert "Hello!"' -e 'end'

say命令以异步方式启动语音,然后将系统事件带到最前面以在语音播放时显示消息。

† 通过Remote Apple Events不允许显示UI的命令(如display alert和)display dialog。要将它们发送到远程计算机上的进程,必须首先经过ssh


1

同样,也没有什么可以阻止您使用OSX内置的远程桌面或屏幕共享,而只是以普通用户身份登录而跳过终端。

然后,您可以正常使用说。或者有很多应用程序可以进行文本到语音转换。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.