前言:
本文僅供學(xué)習(xí)之用,如果侵權(quán)請聯(lián)系刪除!
文本轉(zhuǎn)語音技術(shù)也叫TTS,是Text To Speech的縮寫.iOS如果想做有聲書等功能的時(shí)候,會(huì)用到這門技術(shù)。
一、使用iOS自帶TTS需要注意的幾點(diǎn):
1.iOS7之后才有該功能
2.需要AVFoundation庫
3.AVSpeechSynthesizer:語音合成器,可以假象成一個(gè)可以說話的人,是最主要的接口。
4.AVSpeechSynthesisVoice:可以假象成人的聲音
5.AVSpeechUtterance:可以假象到要說的一段話
二、代碼示例,播放語音
三、AVSpeechSynthesizer介紹
這個(gè)類就像一個(gè)會(huì)說話的人,可以說話 可以暫停 可以繼續(xù)說話 可以判斷他當(dāng)前是否正在說話有以下方法或者屬性:
- 說話: speakUtterance
- 控制:
continueSpeaking(繼續(xù)說)
pauseSpeakingAtBoundary(暫停說話)
paused(暫停狀態(tài)的屬性)
speaking(說話的狀態(tài)),
stopSpeakingAtBoundary(停止說話)- 委托: delegate
四、AVSpeechBoundary介紹
這是一個(gè)枚舉。在暫停,或者停止說話的時(shí)候,停下的方式用這個(gè)枚舉標(biāo)識(shí)。包括兩種:
- AVSpeechBoundaryImmediate:立即停
- AVSpeechBoundaryWord:說完一個(gè)整詞在停
五、AVSpeechSynthesizerDelegate介紹
合成器的委托,對于一些事件,提供了響應(yīng)的接口。
- didCancelSpeechUtterance:已經(jīng)取消說話
- didContinueSpeechUtterance:已經(jīng)繼續(xù)說話
- didFinishSpeechUtterance: 已經(jīng)說完
- didPauseSpeechUtterance:已經(jīng)暫停
- didStartSpeechUtterance:已經(jīng)開始
- willSpeakRangeOfSpeechString將要說某段話
六、AVSpeechSynthesisVoice介紹
AVSpeechSynthesisVoice定義了一系列的聲音, 主要是不同的語言和地區(qū).
- voiceWithLanguage: 根據(jù)制定的語言, 獲得一個(gè)聲音.
- speechVoices: 獲得當(dāng)前設(shè)備支持的聲音
- currentLanguageCode: 獲得當(dāng)前聲音的語言字符串, 比如”ZH-cn”
- language: 獲得當(dāng)前的語言
七、AVSpeechUtterance介紹
這個(gè)類就是一段要說的話. 主要的屬性和方法有:
- pitchMultiplier: 音高
- postUtteranceDelay: 讀完一段后的停頓時(shí)間
- preUtteranceDelay: 讀一段話之前的停頓
- rate: 讀地速度, 系統(tǒng)提供了三個(gè)速度: AVSpeechUtteranceMinimumSpeechRate, AVSpeechUtteranceMaximumSpeechRate,AVSpeechUtteranceDefaultSpeechRate
- speechString: 要讀的字符串
- voice: 使用的聲音, 是AVSpeechSynthesisVoice對象
- volume: 音量
八、UML關(guān)系圖
九、附錄:AVSpeech支持的語言種類
ar-SA 沙特阿拉伯(阿拉伯文) en-ZA, 南非(英文) nl-BE, 比利時(shí)(荷蘭文) en-AU, 澳大利亞(英文) th-TH, 泰國(泰文) de-DE, 德國(德文) en-US, 美國(英文) pt-BR, 巴西(葡萄牙文) pl-PL, 波蘭(波蘭文) en-IE, 愛爾蘭(英文) el-GR, 希臘(希臘文) id-ID, 印度尼西亞(印度尼西亞文) sv-SE, 瑞典(瑞典文) tr-TR, 土耳其(土耳其文) pt-PT, 葡萄牙(葡萄牙文) ja-JP, 日本(日文) ko-KR, 南朝鮮(朝鮮文) hu-HU, 匈牙利(匈牙利文) cs-CZ, 捷克共和國(捷克文) da-DK, 丹麥(丹麥文) es-MX, 墨西哥(西班牙文) fr-CA, 加拿大(法文) nl-NL, 荷蘭(荷蘭文) fi-FI, 芬蘭(芬蘭文) es-ES, 西班牙(西班牙文) it-IT, 意大利(意大利文) he-IL, 以色列(希伯萊文,阿拉伯文) no-NO, 挪威(挪威文) ro-RO, 羅馬尼亞(羅馬尼亞文) zh-HK, 香港(中文) zh-TW, 臺(tái)灣(中文) sk-SK, 斯洛伐克(斯洛伐克文) zh-CN, 中國(中文) ru-RU, 俄羅斯(俄文) en-GB, 英國(英文) fr-FR, 法國(法文) hi-IN 印度(印度文)
參考文章:
1、iOS自帶文本轉(zhuǎn)語音技術(shù)(TTS)的實(shí)現(xiàn)即語音播報(bào)的實(shí)踐
2、使用語音類AVSpeechUtterance和AVSpeechSynthesizer