iOS- 文本轉(zhuǎn)語音-TTS

前言:

本文僅供學(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容