- (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
返回结果:识别成功