Я не понимаю, как получить доступ к голосовым атрибутам. Я знаю, что это, вероятно, новый ie вопрос, и он очень похож на c в Swift, но я не могу понять его всю жизнь. Согласно этому сайту, https://developer.apple.com/documentation/appkit/nsspeechsynthesizer/1448458-attributes Я могу получить доступ к голосовым атрибутам, открыв dictioanry. Я нашел список атрибутов: имя, возраст, пол и т. Д. c. Однако, когда я вызываю атрибуты для данного голосового идентификатора, я получаю кучу странных значений, и я не могу получить доступ ни к чему: Моя последняя попытка заключалась в том, чтобы сделать это, но она не сработала:
struct ttsVoice {
let name: String
let language: String
}
let tts = NSSpeechSynthesizer()
let availableVoices = NSSpeechSynthesizer.availableVoices
let voiceMap: [ttsVoice]=[]
func listVoices() -> Void {
availableVoices.forEach { element in
let voiceDictionary = NSSpeechSynthesizer.attributes(forVoice: element)
let name = voiceDictionary["name"]
}
}
I пробовал много других подходов, некоторые сказали, что я не могу преобразовать строку в NSVoiceAttributeKey, et c. Этот просто говорит, что невозможно преобразовать значение типа String в ожидаемый тип аргумента NSSpeechSynthesizer.VoiceAttributeKey, engine.swift, Error
Кто-нибудь делал это раньше? Я уверен, что это что-то очень простое.
Спасибо.