1

我是 iSpeech 的新手,试图在 iPhone 应用程序上实现这一点,我想知道如何/是否可以识别用户是否在说话。例如,当麦克风处于活动状态并且用户正在说话时,我想捕获该事件以显示一些动画,而当用户保持沉默时,我会停止动画。

他们的api中有什么东西可以做这样的事情吗?或者当 iSpeech 已经嵌入到我的项目中时,我是否可以从与 iSpeech 并行的 AVaudioSession 中做到这一点?

请帮忙。

谢谢

4

1 回答 1

0

如果你想知道用户说话的时间,你正在使用像 iSpeech 这样的框架,你可以设置一个计时器来找出音量。这将发生在 AVAudioRecorderDelegate 中。继承这个类

helloWorldTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("sayHello"), userInfo: nil, repeats: true)

此计时器有助于保持每 0.1 秒监控一次音量。所以如果它只是一阵声音,它仍然会被检测到

此功能显示每 0.1 秒的音量。当麦克风处于活动状态时,使用如上所示的计时器激活此功能。

关闭麦克风后,停用计时器。简单的

你想制作的任何其他动画,写出来

func sayHello()
{
    if (soundRecorder?.recording == true) {
        soundRecorder?.updateMeters();
        let power:Float = soundRecorder!.averagePowerForChannel(0)
           write your animation etc based on the power (volume) here
        print("Volume is \(power)");
    }
}
于 2016-03-11T21:22:47.840 回答