您的位置:首页 > 移动开发 > IOS开发

ios 调用google api 实现语音识别

2014-04-15 13:43 483 查看
[cpp]
view plaincopyprint?

- (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、W***格式

请求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

返回结果:识别成功

转自:http://blog.csdn.net/reylen/article/details/8709457
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: