iOS 文本轉語音(TTS)詳解:Swift,iostts

來源:互聯網
上載者:User

iOS 文本轉語音(TTS)詳解:Swift,iostts

上一篇部落格講解了iOS的speech FrameWork語音辨識的功能:http://www.cnblogs.com/qian-gu-ling/p/6599670.html,對應的這篇部落格就寫一下文本轉語音。

TTS很簡單,沒有使用權限設定,也沒有一大堆代碼,代碼如下:

import UIKitimport AVFoundationimport MediaPlayerclass ViewController: UIViewController,AVSpeechSynthesizerDelegate {    let synth = AVSpeechSynthesizer() //TTS對象    let audioSession = AVAudioSession.sharedInstance() //語音引擎     override func viewDidLoad() {        super.viewDidLoad()        synth.delegate = self    }        // 按按鈕開始語音    func speechMessage(message:String){        if !message.isEmpty {            do {                // 設定語音環境,保證能朗讀出聲音(特別是剛做過語音辨識,這句話必加,不然沒聲音)                try audioSession.setCategory(AVAudioSessionCategoryAmbient)            }catch let error as NSError{                print(error.code)            }            //需要轉的文本            let utterance = AVSpeechUtterance.init(string: message)            //設定語言,這裡是中文            utterance.voice = AVSpeechSynthesisVoice.init(language: "zh_CN")            //設定聲音大小            utterance.volume = 1             //設定音頻            utterance.pitchMultiplier = 1.1             //開始朗讀            synth.speak(utterance)         }    }    //按按鈕結束語音    func StopSpeech() {        // 立即中斷語音        synth.stopSpeaking(at: AVSpeechBoundary.immediate)        // synth.stopSpeaking(at: AVSpeechBoundary.word)也能結束語音,但遇到中斷上一個語音,立即朗讀另一個文本就做不到。    }        // 語音結束之後要做的事(代理方法)    func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didFinish utterance: AVSpeechUtterance) {       // code     }}

寫的知識點比較完整,大家也可以把這些代碼寫成一個類:SpeechUtil,基本不用改什麼,調用類的speechMessage和StopSpeech方法就行了,若要走代理方法,別忘了SpeechUtil().synth.delegate = self

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.