Mapbox 语音

CircleCI codecov Carthage compatible CocoaPods SPM compatible

Mapbox 语音 将您的 iOS、macOS、tvOS 或 watchOS 应用程序连接到 Mapbox 语音 API。 从 Mapbox 导航 API 获取转向指引,并以自然的语音在多种语言中朗读。 该库专门设计用于与 mapbox-directions-swift 配合使用,作为 Mapbox 导航 SDK for iOS 的一部分。

该库与用 Swift 编写的应用程序兼容。 2.0 版本是该库支持用 Objective-C 或 AppleScript 编写的应用程序的最后一个版本。

入门

在您的 Carthage Cartfile 中指定以下依赖项

github "mapbox/mapbox-speech-swift" ~> 2.1

或在您的 CocoaPods Podfile 中

pod 'MapboxSpeech', '~> 2.1'

或在您的 Swift Package Manager Package.swift 中

.package(url: "https://github.com/mapbox/mapbox-speech-swift.git", from: "2.1.1")

然后 import MapboxSpeech@import MapboxSpeech;

用法

您需要一个 Mapbox 访问令牌 才能使用该 API。 如果您已经在使用 Mapbox Maps SDK for iOSmacOS SDK,只要您将访问令牌放置在应用程序的 Info.plist 文件的 MBXAccessToken 键中,Mapbox 语音 就会自动识别您的访问令牌。

基础知识

主要的语音合成类是 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!
}