gpt4 book ai didi

ios - 在 Swift 的 AVSpeech 和 AVSpeechUtterance 中强制自定义单词发音

转载 作者:可可西里 更新时间:2023-11-01 01:07:12 25 4
gpt4 key购买 nike

为了使用 AVSpeechUtterance 说出数字,我希望 Siri 以符合数字类型约定的方式说出数字。

对于日期,我希望它把 1492 读成十四九十二,而不是一千、四百、九十二。

对于电话号码 650-412-3456,我想说六五哦,四一二三四五六,而不是六百五十四百一十二三四百五十六。

是否有使用 AVSpeech 和 AVUtterance 指定发音的方法? the docs 中似乎没有任何明显的东西。

最佳答案

虽然不是 AV 设置,但为说话者解析短语会得到预期的结果。

例如,使用下面的扩展:

let number = "1492"
let phrase = number.separate(every: 2, with: " ")
print(phrase) // 14 92

对于电话:

let phone   = "650-412-3456"
let parts = phone.components(separatedBy: CharacterSet.decimalDigits.inverted)
var phrase2 = String()

for part in parts {
if Int(part) != nil {
phrase2.append(String(describing: part).separate(every: 1, with: " ") + ",")
}
}

print(phrase2) // 6 5 0,4 1 2,3 4 5 6,

添加逗号是为了让语音合成器更自然地阅读,但也可以省略。

String extension from Joe Maher:

extension String {
func separate(every: Int, with separator: String) -> String {
return String(stride(from: 0, to: Array(self).count, by: every).map {
Array(Array(self)[$0..<min($0 + every, Array(self).count)])
}.joined(separator: separator))
}
}

关于ios - 在 Swift 的 AVSpeech 和 AVSpeechUtterance 中强制自定义单词发音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56297573/

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