william-weng/wwtexttospeechmanager
✨ 功能特色
- 將文字轉換成語音播放。
- 使用語言識別碼選擇語音,例如
en-US、zh-TW或ja-JP。 - 自訂語音速度、音調與音量。
- 支援開始、暫停、繼續與停止播放。
- 查詢目前是否正在播放或暫停。
- 可選擇是否啟用語音事件回呼。
- 監聽目前即將播放的文字範圍。
- 適合與主執行緒上的 UI 安全整合。
📦 安裝方式
Swift Package Manager
swift package add https://github.com/William-Weng/WWTextToSpeechManager.git或在 Xcode 中:
File → Add Packages → https://github.com/William-Weng/WWTextToSpeechManager.git📌 公開屬性
| 屬性 | 類型 | 說明 | | --- | --- | --- | | range | SpeechProgress | 目前正在播放文字的 NSRange。 | | text | SpeechProgress | 目前文字範圍所包含的內容。 | | progress | SpeechProgress | 介於 0.0 到 1.0 的預估進度。 | | fullText | SpeechProgress | 完整的語音文字內容。 |
💡 公開API
| 屬性 | 類型 | 說明 | | --- | --- | --- | | init(rate:pitchMultiplier:volume:usesCallback:) | WWTextToSpeechManager | 建立文字轉語音管理器。 |
🏗️ 公開回呼
| 屬性 | 說明 | | --- | --- | | onStart: ((String) -> Void)? | 語音開始播放時的回呼。 | | onProgress: ((SpeechProgress) -> Void)? | 語音即將播放某段文字時的回呼。 | | onPause: ((String) -> Void)? | 語音暫停時的回呼。 | | onContinue: ((String) -> Void)? | 語音繼續播放時的回呼。 | | onFinish: ((String) -> Void)? | 語音播放完成時的回呼。 | | onCancel: ((String) -> Void)? | 語音播放被取消時的回呼。 |
🧪 完整範例
import UIKit
import WWTextToSpeechManager
final class ViewController: UIViewController {
private let tts = WWTextToSpeechManager()
override func viewDidLoad() {
super.viewDidLoad()
tts.speak(text: "安安,你好嗎?", language: "zh-TW")
}
}Package Metadata
Repository: william-weng/wwtexttospeechmanager
Default branch: main
README: README.md