使 `say` 终端实用程序和 NSSpeechSynthesizer 与 Siri 语音一起工作

Make the `say` terminal utility and NSSpeechSynthesizer work with Siri voices

macOS Big Sur 本身 能够将 Siri 语音用于 TTS,事实证明您可以 select 将其作为 [=] 中的系统语音20=],例如结合基于快捷键的 Speak selected text when the key is pressed 功能。
(不过,奇怪的是,如果您右键单击文本和select Speech > Start Speaking 来自上下文菜单,可能也不适用于其他辅助功能 - 这种差异是 this MacRumors forum thread 的主题。)

不幸的是,此功能似乎并未通过实用程序或 API 公开。


[1] 已安装 Siri语音的bundle ID可以确定如下:

ls /System/Library/Speech/Voices/*.SpeechVoice/Contents/Info.plist | grep -i siri | xargs -n 1 /usr/libexec/PlistBuddy -c 'print CFBundleIdentifier'

注意:以上适用于我的 macOS Big Sur,从早期版本升级,至少安装了一个 Siri 语音。 Siu Ching Pong -Asuka Kenji- 报告说在新安装的、未升级的 Big Sur 机器上 System/Library/Speech/Voices 目录是空的。

查找所有可用(可下载)Siri 语音的包 ID:

/usr/libexec/PlistBuddy -c 'print DownloadableCustomVoices' /System/Library/PrivateFrameworks/SpeechObjects.framework/Resources/SpeechDataDefaults.plist | grep 'VoiceIdentifier' | sed -E 's/.+ = //'

使用键盘快捷键可以激活新的Siri语音(noraSiri)

在 WWDC20 演讲中,Apple 表示 AVSpeechSynthesizer 不支持 Siri 语音。

演讲名为“Create a seamless speech experience in your apps”。显然这也适用于 Catalina。

这是相关的幻灯片:

我开始 thread at macrumors 关于配置系统语音朗读文本的类似问题。