gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:07:58 25 4
gpt4 key购买 nike

  • say command-line utility从 macOS 11 (Big Sur) 开始,似乎不知道 Siri 的声音:
  • say -v '?'没有列出 Siri 的声音。
  • 明确针对 Siri 语音不起作用:
  • say -v NoraSiri hi!找不到 Nora Siri 语音(这是默认的 Siri 语音)。

  • 使用捆绑 ID(例如, com.apple.speech.synthesis.voice.custom.siri.nora.premium )[1] 不会提示未知的声音,但语音输出失败并显示 Open speech channel failed: -86 :
  • say -v com.apple.speech.synthesis.voice.custom.siri.nora.premium hi!
  • 表面上,任何带有前缀 com.apple.speech.synthesis.voice.custom 的字符串触发此错误。


  • 同样, NSSpeechSynthesizer 不列出可用的 Siri 声音,也不支持为语音输出选择一种声音。

  • macOS Big Sur 本身能够为 TTS 使用 Siri 语音,事实证明您可以在 System Preferences > Accessibility > Speech 中选择一个作为系统语音。 ,例如结合基于快捷键的 Speak selected text when the key is pressed特征。
    (但奇怪的是,如果您右键单击文本并从上下文菜单中选择 Speech > Start Speaking,并且可能也不适用于其他辅助功能,则被选为系统语音的 Siri 语音不会生效 - 这种差异是 this MacRumors forum thread 的主题。 .)
    不幸的是,这个功能似乎没有通过实用程序或 API 公开。
  • 有什么方法可以通过 say 使用 Siri 语音吗?或 NSSpeechSynthesizer ?

  • [1] 已安装的 Siri 语音包 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/.+ = //'

    最佳答案

    在 WWDC20 演讲中,Apple 表示 AVSpeechSynthesizer 中不提供 Siri 语音。
    谈话被称为“Create a seamless speech experience in your apps”。显然这也适用于 Catalina。
    这是相关的幻灯片:
    WWDC20 Slide
    我开始了 thread at macrumors关于配置系统语音以说出文本的类似问题。

    关于macos - 使 `say` 终端实用程序和 NSSpeechSynthesizer 与 Siri 语音一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61122378/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com