ios 调用google api 实现语音识别

来源:互联网 发布:知我者,二三子论语述而 编辑:程序博客网 时间:2024/04/27 23:00
[cpp] view plaincopyprint?
  1. - (void)sendRequest:(id)sender {  
  2.     NSURL *URL = [NSURL URLWithString:@"http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN&maxresults=9"];  
  3.     ASIHTTPRequest *request = [[[ASIHTTPRequest alloc]initWithURL:URL] autorelease];  
  4.       
  5.     [request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];  
  6.     [request addRequestHeader:@"Content-Type" value:@"audio/x-flac; rate=16000"];  
  7.       
  8.     [request setRequestMethod:@"POST"];  
  9.       
  10.     NSData *data = [NSData dataWithContentsOfFile:@"/Users/adminadmin/Desktop/hello.flac"];  
  11.     NSLog(@"date:%@",data);  
  12.     [request appendPostData:data];  
  13.     [request setDidFinishSelector:@selector(didFinishPost:)];  
  14.     [request setDidFailSelector:@selector(didFailedPost:)];  
  15.       
  16.     [request setDelegate:self];  
  17.     [request startSynchronous];  
  18.       
  19. }  


(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

    返回结果:识别成功