Swift语音和文本的转换

TextAndVoice

Swift语音和文本的转换

相关博客


  • 文本转语音是iOS7以后的技术, 用到的是AVFoundation框架
  • 语音转文本是iOS10以后, 苹果发布的一个Speech框架
  • 下面先介绍一下简单的文本转语音
  • GitHub上Demo地址
  • 项目包括
    • 文本转语音
    • 实时语音转文本
    • 本地语音转文本
    • 录音保存本地,转文本

一. 文本转语音

  • 文本转语音技术, 简称TTS (是Text To Speech的缩写), 语音合成苹果官方文档
  • 是苹果iOS7以后新增的功能, 使用AVFoundation 库
  • 下面介绍一下需要用到的类

1. AVSpeechSynthesizer: 语音合成器

1-1. 属性
//是否正在语音播放
open var isSpeaking: Bool { get }

//是否停止语音播放
open var isPaused: Bool { get }
1-2. 方法
//播放语音
open func speak(_ utterance: AVSpeechUtterance)

//停止语音播放
open func stopSpeaking(at boundary: AVSpeechBoundary) -> Bool

//暂停语音播放
open func pauseSpeaking(at boundary: AVSpeechBoundary) -> Bool

//继续语音播放
open func continueSpeaking() -> Bool

//(iOS10以上, 输出通道)
open var outputChannels: [AVAudioSessionChannelDescription]?

2. AVSpeechBoundary

  • 描述语音可能被暂停或停止的枚举值
case immediate
//表示发言应该暂停或立即停止。

case word
//说完整个词语之后再暂停或者停止

3. AVSpeechUtterance

  • 可以将文本和成一段语音的类, 或者说就是一段要播放的语音
3-1. 属性
//使用的声音
open var voice: AVSpeechSynthesisVoice?

//文本属性    
open var speechString: String { get }

//富文本属性
@available(iOS 10.0, *)
open var attributedSpeechString: NSAttributedString { get }

//说话的速度    
open var rate: Float 
//提供了两个语速 AVSpeechUtteranceMinimumSpeechRate和 AVSpeechUtteranceMaximumSpeechRate和AVSpeechUtteranceDefaultSpeechRate

//说话的基线音高, [0.5 - 2] Default = 1   
open var pitchMultiplier: Float 

//说话音量, [0-1] Default = 1
open var volume: Float 

//开始一段语音之前等待的时间
open var preUtteranceDelay: TimeInterval 

//语音合成器在当前语音结束之后处理下一个排队的语音之前需要等待的时间, 默认0.0 
open var postUtteranceDelay: TimeInterval
3-2. 初始化方法
public init(string: String)

@available(iOS 10.0, *)
public init(attributedString string: NSAttributedString)

4. AVSpeechSynthesisVoice

  • 用于语音合成的独特声音, 主要是不同的语言和地区
  • 所支持的所有语言种类详见最底部附录
4-1. 相关属性
//获得当前的语言
open var language: String { get }

//返回用户当前语言环境的代码
@available(iOS 9.0, *)
open var
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值