gpt4 book ai didi

swift - NSSpeechSynthesizer 在 macOS 上获取 Siri 声音

转载 作者:行者123 更新时间:2023-12-03 09:19:48 29 4
gpt4 key购买 nike

有没有办法获得 NSSpeechSynthesizer 的 Siri 声音? ? NSSpeechSynthesizer.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)

最佳答案

Siri 语音

我不知道有什么技巧可以让 Siri 语音可用,我担心通过公共(public) API 让它工作是不可能的。

  • 两个NSSpeechSynthesizerAVSpeechSynthesizer请使用SpeechSynthesis.framework (包含在 ApplicationServices.framework 中)。
  • 赶紧查了一下,函数BuildDefaultVoiceList(bool)检查捆绑标识符(通过 PermitAllVoices 将其与 com.apple.VoiceOverUtilitycom.apple.VoiceOvercom.apple.VoiceOverUtilityCacheBuilder 进行比较)。
  • 可能还有其他检查。

  • 所有的声音都存储在 /System/Library/Speech/Voices文件夹。试图复制语音,更改 Info.plist值使其看起来像另一种声音,但仍然不可用/工作。

    你想走多远?你想禁用 SIP,修改框架,预加载你的东西,......值得吗?
    AVSpeech​Synthesizer在 macOS 上

    它有效,但它有问题,您必须不时终止该服务。

    可用声音列表

    AVSpeechSynthesisVoice.speechVoices().forEach { voice in
    print("Name: \(voice.name) Language: \(voice.language) Identifier: \(voice.identifier)")
    }

    说话

    let utterance = AVSpeechUtterance(string: "Ahoj, jak se máš?")
    utterance.voice = AVSpeechSynthesisVoice(identifier: "com.apple.speech.synthesis.voice.zuzana.premium")

    let synthesizer = AVSpeechSynthesizer()
    synthesizer.speak(utterance)

    不会说话?

    调用 speak(utterance) 时会调用以下所有方法(委托(delegate))它可以正常工作:
  • speechSynthesizer(_:didStart:)
  • speechSynthesizer(_:willSpeakRangeOfSpeechString:utterance:)
  • speechSynthesizer(_:didFinish:)

  • 如果您只得到 speechSynthesizer(_:didCancel:) ,就会出现问题方法调用,你必须杀死 speechsynthesisd过程:

    kill `pgrep speechsynthesisd`

    然后再试一次,它为我解决了这个问题。

    附加声音安装
  • 系统偏好设置 - 辅助功能 - 语音
  • 系统语音 - 单击并向下滚动并选择自定义...
  • 选择附加语音安装
  • 关于swift - NSSpeechSynthesizer 在 macOS 上获取 Siri 声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61878338/

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