我是iSpeech的新手,试图在iPhone应用程序上实现这一点,并想知道我是否可以识别用户是否在说话。例如,当麦克风处于活动状态并且用户正在说某些内容时,我想捕获该事件以便显示一些动画,当用户保持沉默时,我会停止动画。
他们的api中有什么东西要做那样的事吗? iSpeech已嵌入我的项目中,是否可以从与iSpeech并行的AVaudioSession中进行此操作?
请帮忙。
谢谢
答案 0 :(得分: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)");
}
}