【发布时间】:2021-05-17 20:47:13
【问题描述】:
我正在使用 Here SDK 在 Xcode 中开发一个 iOS 项目。我正在使用高级版(v3.17)。
在我的应用程序的“设置”屏幕中,用户可以选择 SDK 正在使用的“语音”(我通过 NMAVoiceCatalogvoicePackages 属性获取该列表。)
我想在用户选择语音时播放一个小句子(例如“立即转身”),以便他们在喜欢与否时立即获得反馈。
现在,我知道 NMAAudioManager 有一个方法 playOutput 可以播放预先录制的声音文件或 tts 字符串。太好了,但现在我的问题是:
如何确保NMAAudioManager.sharedInstance().play( 方法与NMANavigationManager 使用相同的声音?
请务必在此处注意 tts 语音和预录语音之间的区别。
预先录制的声音 我想这是一个预先录制的 mp3 或 wav 文件的资源包。我只需要知道我可以使用的一个或多个声音文件的 url。例如。句子“turn right now”的声音文件。我想所有语言的所有声音的文件名都是相同的(虽然不确定)。是否有可用声音文件及其名称的列表?或者您能否给我一些声音文件名(以及 SDK 中的 URL),以便我可以通过 NMAAudioManager 将它们作为测试声音播放?
tts 声音
对于这些声音,我可以用每种支持的语言创建一个句子并将其提供给NMAAudioManager.sharedInstance().play( 方法。我会为那个句子创建一个“NMATTSAudioOutput”。但是,我需要将正确的AVSpeechSynthesisVoice 设置为该“NMATTSAudioOutput”实例的语音属性。正确的意思是 NMANavigationManager 正在使用的 AVSpeechSynthesisVoice。我试过使用AVSpeechSynthesisVoice(language: voicePackage.languageCode),但这并没有提供与NMANavigationManager 使用的相同的AVSpeechSynthesisVoice。例如。英国英语 tts voicePackage 与美国英语 AVSpeechSynthesisVoice 一起播放。你能和我分享一下NMANavigationManager是如何从NMAVoicePackage属性中选择AVSpeechSynthesisVoice的吗?
【问题讨论】:
标签: ios swift here-api heremaps-ios-sdk