【发布时间】:2016-02-05 02:26:50
【问题描述】:
我有一个应用程序需要使用麦克风来录制用户语音。我正在尝试制作speech to text。
我正在使用SpeechKit.framework,下面是我使用的代码:
-(void)starRecording{
self.voiceSearch = [[SKRecognizer alloc] initWithType:SKSearchRecognizerType
detection:SKShortEndOfSpeechDetection
language:[[USER_DEFAULT valueForKey:LANGUAGE_SPEECH_DIC] valueForKey:@"record"]
delegate:self];
}
- (void)recognizer:(SKRecognizer *)recognizer didFinishWithResults:(SKRecognition *)results {
long numOfResults = [results.results count];
if (numOfResults > 0) {
// update the text of text field with best result from SpeechKit
self.recordString = [results firstResult];
[self sendChatWithMediaType:@"messageCall" MediaUrl:@"" ContactDetail:@"{}" LocationDetail:@"{}"];
[self.voiceSearch stopRecording];
}
if (self.voiceSearch) {
[self.voiceSearch cancel];
}
[self starRecording];
}
这使得SKRecognizer 始终处于打开状态,从而降低了应用程序的性能。
我想在麦克风检测到输入音频时启动SKRecognizer。
我有办法吗?当麦克风为我输入声音时调用的方法或始终返回检测到的音频级别的方法?
谢谢!
【问题讨论】:
-
您是否使用 AvsudioRecorder 类来录制音频?
标签: ios objective-c iphone audio-recording microphone