首页 > 解决方案 > 如何为 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
    }

但我没有看到一个选项来获取使用播放averagePowerfrequency音频AVSpeechSynthesizer

甚至AVAudioSession.sharedInstance().isOtherAudioPlaying返回false 任何解决方案?

标签: iosiphoneswift4avaudioplayeravspeechsynthesizer

解决方案


推荐阅读