标签: nsspeechsynthesizer

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

  • 从macOS 11 (Big Sur) 开始,say命令行实用程序似乎不知道 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的大苏尔本身能够使用Siri语音TTS对的,就证明了的事实,你可以选择一个作为系统的声音System Preferences > Accessibility > Speech,例如,在与基于快捷键组合Speak selected text when the key is pressed功能。
(但奇怪的是,如果您右键单击文本并从上下文菜单中选择并且可能也不适用于其他辅助功能,则被选为系统语音的 Siri 语音不会生效- 这种差异是 …

macos text-to-speech siri macos-catalina nsspeechsynthesizer

24
推荐指数
2
解决办法
2709
查看次数

NSSpeechSynthesizer 在 macOS 上获取 Siri 声音

有没有办法获得 Siri 的声音NSSpeechSynthesizerNSSpeechSynthesizer.availableVoices()没有列出它们,但也许有一个未记录的技巧或什么?

我也尝试过使用AVSpeech?Synthesizer,即使它应该可以在 macOS 10.14+ 上使用,但我无法大声朗读……

我已经使用 Playground 使用来自NSHipster的以下代码对此进行了测试:

import Cocoa
import AVFoundation

let string = "Hello, World!"
let utterance = AVSpeechUtterance(string: string)

let synthesizer = AVSpeechSynthesizer()
synthesizer.speak(utterance)
Run Code Online (Sandbox Code Playgroud)

macos avfoundation avspeechsynthesizer swift nsspeechsynthesizer

10
推荐指数
1
解决办法
576
查看次数