ฉันจะ“ พูด” กับ Mac เครื่องอื่นได้อย่างไร?


19

ฉันมี Macs สองเครื่องในบ้านของเรา (iMac และ MacBook Pro)

ฉันต้องการใช้sayยูทิลิตีบรรทัดคำสั่งเพื่อพิมพ์บางอย่างบน MBP ของฉันและให้มันพูดกับ iMac ได้เหมือนระบบอินเตอร์คอม

นอกจากนี้อาจเป็นเรื่องตลกที่จะส่งข้อความถึงภรรยาของฉันในขณะที่เธอใช้ iMac

สามารถทำได้หรือไม่


2
ที่เกี่ยวข้อง: XKCD 530 xkcd.com/530
แอนดรูกริมม์

คำตอบ:


26

เนื่องจาก Mac ทั้งสองเครื่องอยู่ในบ้านเดียวกันฉันจึงถือว่าพวกเขาทั้งคู่อยู่ในเครือข่ายเดียวกัน

ก่อนอื่นคุณต้องเปิดใช้งานRemote Loginบน Mac ที่คุณต้องการเสียงออก

ไปที่System Preferences > SharingและRemote Loginทำเครื่องหมายในช่อง จากนั้นใช้คอมพิวเตอร์ของคุณเปิดเทอร์มินัลแล้วพิมพ์

ssh <user>@<computer name.local>

ที่ไหน<user>เป็นภรรยาของคุณเข้าสู่ระบบและ<computer name>เป็นชื่อของเครื่องคอมพิวเตอร์อื่น ๆ

ตอนนี้ราวกับว่าคุณกำลังเปิดเทอร์มินัลบนคอมพิวเตอร์ของภรรยาของคุณและคุณสามารถทำsayอะไรก็ได้ที่คุณชอบ


มันบอกว่าไม่พบกิจกรรม
cbmeeks

@cbmeeks เมื่อไหร่? คำสั่งสุดท้ายที่คุณทำคืออะไร?
Loïc Wolff

ไม่เป็นไร. ฉันทำผิด ใช้งานได้ดี! ขอบคุณมาก
cbmeeks

2
ฉันเคยทำสิ่งนี้มาก่อนเมื่อโค้ดข้างกับเพื่อนคำตอบที่ดี!
Moshe

2
คุณสามารถรวมคำสั่งเป็นบรรทัดเดียว:ssh user@hostname 'say hello'
willWorkForCookies

20

นอกเหนือจากการใช้sshเพื่อเรียกใช้คำสั่งในพื้นที่ห่างไกลคุณสามารถใช้เหตุการณ์ระยะไกลแอปเปิ้ลซึ่งยังมีsayคำสั่งเช่นเดียวกับคนอื่น ๆ display alertที่อาจเป็นประโยชน์กับคุณเช่น

บนเครื่องเป้าหมายให้เปิดใช้งาน:

ค่ากำหนดของระบบ> การแชร์> Remote Apple Events

จากนั้นในเครื่องของคุณให้เรียกใช้สคริปต์ต่อไปนี้ (ใน AppleScript Editor หรือผ่านทางosascriptTerminal):

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

มันจะขอให้คุณตรวจสอบเมื่อคุณรวบรวมหรือเรียกใช้สิ่งนี้ หากคุณทำเช่นนั้นใน AppleScript Editor มันจะจดจำการรับรองความถูกต้องตราบใดที่คุณเปิด AppleScript Editor ไว้ดังนั้นคุณจะไม่ต้องตรวจสอบสิทธิ์ทุกครั้งที่คุณเรียกใช้ (กล่องโต้ตอบการตรวจสอบความถูกต้องยังมีตัวเลือกในการบันทึกข้อมูลรับรองของคุณบน Keychain เพื่อหลีกเลี่ยงการรบกวนซ้ำ ๆ )

คุณสามารถทำได้จากบรรทัดคำสั่งใน Terminal ด้วย:

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

วิธีการแสดงข้อความบนเครื่องระยะไกล

คุณสามารถแสดงข้อความได้โดยลงชื่อเข้าใช้เครื่องระยะไกลด้วยssh†และเรียกใช้คำสั่งนี้ในเชลล์ระยะไกล (สิ่งนี้ไม่ได้ใช้ประโยชน์จากเหตุการณ์ Apple ระยะไกลเพียงเข้าสู่ระบบจากระยะไกลssh):

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

sayคำสั่งเริ่มต้นการพูดแบบไม่พร้อมแล้วนี้จะนำเหตุการณ์ของระบบไปด้านหน้าเพื่อแสดงข้อความในขณะที่พูดเป็นเล่น

†คำสั่งที่แสดง UI เช่นdisplay alertและdisplay dialogไม่ได้รับอนุญาตผ่าน Remote Apple Events sshที่จะส่งพวกเขาไปยังกระบวนการบนเครื่องระยะไกลก่อนอื่นคุณต้องผ่านไป


1

อีกวิธีหนึ่งไม่มีอะไรหยุดคุณจากการใช้เดสก์ท็อประยะไกลหรือการแชร์หน้าจอซึ่งสร้างไว้ใน OSX และเพียงแค่ลงชื่อเข้าใช้ในฐานะผู้ใช้ปกติโดยไม่ต้องข้ามเครื่อง

จากนั้นคุณสามารถใช้พูดปกติ หรือมีแอพจำนวนมากที่ทำข้อความเป็นคำพูด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.