В моем приложении я добавил один файл .flac
в папку моих ресурсов. Я хочу послать в этот .flac
файл в службу распознавания речи Google, ... Ниже мой код:Как хранить .flac-файл в NSData?
NSURL* urlGoogle = [NSURL URLWithString:@"https://www.google.com/speech-api/v1/recognize"];
NSMutableURLRequest *urlGoogleRequest = [[NSMutableURLRequest alloc]initWithURL:urlGoogle];
[urlGoogleRequest setHTTPMethod:@"POST"];
[urlGoogleRequest addValue:@"audio/x-flac; rate=16000" forHTTPHeaderField:@"Content-Type"];
NSURLResponse* response = nil;
NSError* error = nil;
NSArray *docDirs = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [docDirs objectAtIndex:0];
NSString *path = [[docDir stringByAppendingPathComponent:@"surround88"]
stringByAppendingPathExtension:@"flac" ];
NSURL* url = [NSURL fileURLWithPath:path];
//Here I'm getting flacData value is nil
NSData *flacData = [NSData dataWithContentsOfURL:url]; //flacData = nil
[urlGoogleRequest setHTTPBody:flacData];
NSData* googleResponse = [NSURLConnection sendSynchronousRequest:urlGoogleRequest
returningResponse:&response
error:&error];
id jsonObject=[NSJSONSerialization JSONObjectWithData:googleResponse options:kNilOptions error:nil];
NSLog(@"Googles response is: %@",jsonObject);
Поскольку я не посылает никаких данных на сервер, я получаю пустой ответ.
Я тестировал другую стороннюю apis как openears, dragon, ispeech и т. Д. И не удовлетворен.
Может кто-нибудь помочь мне, как продолжить дальше. Является ли это правильным способом реализации функций распознавания речи Google? Любая помощь будет оценена по достоинству.
Thank Bell за ваше предложение. Я заменил свой код на 2 строки, но на этот раз я получаю значение NSURL * url как «ноль». Теперь мое сомнение ... Является объективным C, поддерживающим тип .flac? – SivaCherukuri
Я отредактировал ответ, чтобы решить проблему, о которой вы упомянули. –
Спасибо, Белл. Это работает. – SivaCherukuri