Mapbox Speech
Mapbox Speech可以将您的iOS、macOS、tvOS或watchOS应用程序连接到Mapbox Voice API。从Mapbox Directions API接收转向指令并在多种语言中自然读出。此库专门设计为与mapbox-directions-swift一起使用,作为Mapbox Navigation SDK for iOS的一部分。
此库与用Swift编写的应用程序兼容。2.0版本是该库支持的最后一个支持用Objective-C或AppleScript编写的应用程序的版本。
入门指南
在Carthage Cartfile中指定以下依赖
github "mapbox/mapbox-speech-swift" ~> 1.0
或在您的CocoaPods Podfile中
pod 'MapboxSpeech', '~> 1.0'
或在您的Swift Package Manager Package.swift中
.package(url: "https://github.com/mapbox/mapbox-speech-swift.git", from: "1.0.0")
然后使用import MapboxSpeech
或@import MapboxSpeech;
。
用法
您需要一个Mapbox访问令牌才能使用此API。如果您已经在使用Mapbox Maps SDK for iOS或macOS SDK,只要您已将其放入应用程序Info.plist文件中的MBXAccessToken键,Mapbox Speech将自动识别您的访问令牌。
基础知识
主要的语音合成类是 SpeechSynthesizer
。使用您的访问令牌创建语音合成对象
import MapboxSpeech
let speechSynthesizer = SpeechSynthesizer(accessToken: "<#your access token#>")
或者,您可以将访问令牌放置在应用程序的 Info.plist 文件中的 MBXAccessToken
键中,然后使用共享的语音合成对象
// main.swift
let speechSynthesizer = SpeechSynthesizer.shared
有了方向对象后,构建一个 SpeechOptions 或 MBSpeechOptions 对象,并将其传递给 SpeechSynthesizer.audioData(with:completionHandler:)
方法。
// main.swift
let options = SpeechOptions(text: "hello, my name is Bobby")
speechSynthesizer.audioData(with: options) { (data: Data?, error: NSError?) in
guard error == nil else {
print("Error calculating directions: \(error!)")
return
}
// Do something with the audio!
}