ios 调用google api 实现语音识别

- (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

    返回结果:识别成功



你可能感兴趣的:(ios)