Swift 文字轉語音效果 🎤 是一個非常實用的功能,能夠將文字轉換成語音,讓你的應用程式更具互動性。在這篇文章中,我們將深入探討如何使用 Swift 實現文字轉語音效果,並介紹最新的語法與最佳實踐(2025)。
使用 AVSpeechSynthesizer 實現文字轉語音
AVSpeechSynthesizer 是 iOS 平台上用於語音合成的核心類別,它能夠將文字轉換成語音並播放。首先,我們需要將要轉換的文字包裝成 AVSpeechUtterance 物件,然後將其傳遞給 AVSpeechSynthesizer 進行播放。
基本示例
以下是使用 AVSpeechSynthesizer 將文字轉換為語音的基本範例:
let speechSynthesizer = AVSpeechSynthesizer()
let speechUtterance = AVSpeechUtterance(string: "Hello World")
speechSynthesizer.speak(speechUtterance)
在這個範例中,我們創建了一個 AVSpeechSynthesizer 實例,然後創建了一個 AVSpeechUtterance 實例,將 “Hello World” 傳遞給它。最後,我們呼叫 speak
方法來播放這段文字。
控制語音播放
AVSpeechSynthesizer 還提供了一些方法來控制語音播放,例如暫停、繼續或停止語音播放。以下是相關的範例:
// 暫停
speechSynthesizer.pauseSpeaking(at: .word)
// 繼續
speechSynthesizer.continueSpeaking()
// 停止
speechSynthesizer.stopSpeaking(at: .immediate)
在這段程式碼中,我們可以使用 pauseSpeaking
方法暫停語音播放,continueSpeaking
繼續播放,以及 stopSpeaking
停止播放。
錯誤排除
在開發過程中,你可能會遇到語音播放無法啟動的情況。以下是一些常見問題及其解決方法:
- 語音合成未啟動:確保在主線程中呼叫
speak
方法。 - 聲音聽起來不自然:可以嘗試更改
AVSpeechUtterance
的語音特性,例如速率、音量和語調。
延伸應用
文字轉語音的應用範圍廣泛,可以用於語音助手、無障礙應用程式或教育應用程式。開發者可以根據使用者的需求,添加自訂的語音選擇和語速調整功能。
Q&A(常見問題解答)
1. AVSpeechSynthesizer 支援哪些語言?
AVSpeechSynthesizer 支援多種語言,具體支援的語言取決於設備的系統語言和可用的語音。
2. 如何更改語音的音量和語速?
可以通過設置 AVSpeechUtterance
的 rate
和 volume
屬性來調整音量和語速。例如:speechUtterance.rate = AVSpeechUtteranceDefaultSpeechRate
。
3. 文字轉語音的最佳實踐是什麼?
在實作文字轉語音時,確保處理各種錯誤情況,並提供用戶友好的界面選項,以便用戶能夠輕鬆選擇語音和調整參數。
—