ios - 如何为 AVSpeechSynthesizer 音频生成波形?
问题描述
我正在尝试使用 Apple 的内置TextToVoice
ie,AVSpeechSynthesizer
我正在尝试使用以下方法根据音频文件绘制波形AVAudio
var scale = 0.0 if (avAudio?.isPlaying)! { avAudio?.updateMeters() var power = 0.0
for x in 0..<avAudio!.numberOfChannels {
power += Double(exactly: (avAudio?.averagePower(forChannel: x))!)!
}
power /= Double((SoundEffect?.numberOfChannels)!)
scale = Double(powf(10, (Float(0.05 * power))))
if power == -120
{
return
}
if(lastScale<scale){
if scale>0.44{
scale = 0.45
}
animateView.AnimateBar(frequency: CGFloat(scale))
}
lastScale = scale
}
但我没有看到一个选项来获取使用播放averagePower
的frequency
音频AVSpeechSynthesizer
甚至AVAudioSession.sharedInstance().isOtherAudioPlaying
返回false
任何解决方案?
解决方案
推荐阅读
- mingw-w64 - 如何为linux项目构建一个window可执行bin
- sql - 可以在选定的行之后看到前一行吗?
- python - 最初启动表单时如何隐藏组合框或标签
- python-3.x - 如何解决错误:时间数据 'False' 与格式 '%Y-%m-%d %H:%M:%S' 不匹配
- python - 将指示文档中存在的主题的数组转换为枚举主题的元组
- tcl - 识别文本文件中的空行并在 tcl 中使用该列表循环
- python - 我正在尝试从我的 sqlite 数据库中的特定列打印价格,它给了我一个元组索引超出范围错误
- java - 将 ant 项目迁移到 maven 的更清洁和理想的方式
- api - Testcafe 检查 api 响应总是通过
- c# - 如何在管理面板中添加或删除 SharedResource.xx.resx 文件记录