- (void)sendRequest:(id)sender {
NSURL *URL = [NSURL URLWithString:@"http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN&maxresults=9"];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc]initWithURL:URL] autorelease];
[request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
[request addRequestHeader:@"Content-Type" value:@"audio/x-flac; rate=16000"];
[request setRequestMethod:@"POST"];
NSData *data = [NSData dataWithContentsOfFile:@"/Users/adminadmin/Desktop/hello.flac"];
NSLog(@"date:%@",data);
[request appendPostData:data];
[request setDidFinishSelector:@selector(didFinishPost:)];
[request setDidFailSelector:@selector(didFailedPost:)];
[request setDelegate:self];
[request startSynchronous];
}
(1). google语音搜索识别API的参数:
xjerr=1 参数功能不详,值只能是0或1,去掉也能正常获得结果;
client=chromium 客户端类型,参数不详,修改和去掉能正常获取结果;
lang=en-US 说话的语言类型,这里是英文,中文为zh-CN,其余语言代码参考:
http://msdn.microsoft.com/en-us/library/ms533052(v=vs.85).aspx ;
lm 语法的URL地址,没做深入研究;
xhw 硬件信息,可能用来判断是移动设备还是PC;
maxresults=1 最大返回结果数量,结果根据confidence参数排了序;
key 谷歌API密匙,现在没有也没关系。
(2). 音频格式
1、WAV格式
请求Header:Content-Type: audio/L16; rate=16000
返回结果:识别成功
2、MP3格式
请求Header:Content-Type: audio/mpeg; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/mpeg3; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/x-mpeg; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/x-mpeg-3; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/mp3; rate=16000
返回结果:无法识别的编码
3、PCM格式
请求Header:Content-Type: audio/x-ogg-pcm; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/pcm; rate=16000
返回结果:无法识别的编码
4、SPEEX格式
请求Header:Content-Type: audio/x-speex-with-header-byte; rate=16000
返回结果:识别成功
请求Header:Content-Type: audio/speex; rate=16000
返回结果:识别成功