2011-05-07 12 views
5

Birden çok dili destekleyen bir metin-konuşma iphone uygulaması geliştiriyorum.iPhone SDK - Google TTS ve kodlama

İşte benim isteği URL'si ingilizce için

requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=en&q=hello"; 

yukarıdaki url hiçbir sorunu

var ama Çince

requestUrlStr = @"http://www.translate.google.com/translate_tts?tl=zh-TW&q=你好"; 

için yukarıdaki url 'Kötü URL' verecek biliyorum, Bu yüzden string'i UTF-8

requestUrlStr = [requestUrlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
0 olarak kodlamak için takip yöntemini kullandım.

O

http://www.translate.google.com/translate_tts?tl=zh-CN&q=%E4%BD%A0%E5%A5%BD 

Ardından Google TTS bu Çin metni tanımıyor haline gelecektir.

+0

Bazı yönlendirme kısıtlamaları var gibi görünüyor ... sorun şu ki ... ve URL: http://jalam1001.posterous.com/google-text-to-speech-tts-weston-ruter- gönderildi-u – govi

cevap

10

NSURLRequest'inizdeki varsayılan (appName, vb.) Dışındaki Kullanıcı Aracısı gibi davranmalısınız. bizim favori şirketleri güncellemek ve şeyleri kullanımdan kaldırmak keyfini yana

NSString* userAgent = @"Mozilla/5.0"; 

NSURL *url = [NSURL URLWithString:[@"http://www.translate.google.com/translate_tts?tl=el&q=Καλημέρα" 
            stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 


NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease]; 

[request setValue:userAgent forHTTPHeaderField:@"User-Agent"]; 


NSURLResponse* response = nil; 
NSError* error = nil; 
NSData* data = [NSURLConnection sendSynchronousRequest:request 
            returningResponse:&response 
               error:&error]; 



[data writeToFile:@"/var/tmp/tts.mp3" atomically:YES]; 

GÜNCELLEME ... (Yunan dil kullanmak) 2017

bu deneyin, işte şimdi olması gerektiği gibi yukarıdaki örnek ...

...delegate:nil delegateQueue:[NSOperationQueue mainQueue] ihmal edilebilir.

+0

Mükemmel çalışır. Sana kaç kez söylemem gerektiğini biliyorum. Benim problemime gerçekten çok yardımcı oldun. Sen taşısın! – a380

+0

Android'de de benzer bir sorun var ve herhangi bir cevap alamadım. tam olarak burada ne yapıyorsun? – Amanni

+0

Tarayıcıdan istekte bulunmayı denediniz mi? Google mp3’ü iade etti mi? – Vassilis