2013-04-08 52 views
0

我正在構建一個幫助學生學習外語的應用程序。我注意到當我在設置的「輔助功能」菜單中打開「說話選擇」時,iPhone可以在Safari中閱讀外語文本。是否有可能以編程方式讓手機中的內置文本到語音軟件讀取正在UIView中顯示的外部單詞(NSString)?如何在應用程序中使用iOS的內置文本語音功能?

+0

的問題的答案仍然是正確的。 – 2013-04-08 04:20:12

+0

我沒有看到這一點,但沒有發現它有很大幫助,它是封閉的,因此發佈這一個。 – Tim 2013-04-08 21:57:58

回答

2

我也試圖在我的應用程序中實現TTS,我試圖用一些SDK實現它,但我不能。現在我正在使用GOOGLE TRANSLATE API [「http://www.translate.google.com/translate_tts?tl=en&q=%@」,text「]。它會隱藏您的文本,併爲您提供一個音頻文件,您需要在將文件存儲在Document目錄中後運行該音頻文件[或按照自己的喜好] 。只要使用該代碼。希望這將有助於。

//Conversion using Google TTS API 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"file.mp3"]; 

    NSString *text = textToConvert.text; 
    NSString *urlString = [NSString stringWithFormat:@"http://www.translate.google.com/translate_tts?tl=en&q=%@",text]; 
    NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
    NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url]; 
    [request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" forHTTPHeaderField:@"User-Agent"]; 
    NSURLResponse* response = nil; 
    NSError* error = nil; 
    NSData* data = [NSURLConnection sendSynchronousRequest:request 
             returningResponse:&response 
                error:&error]; 
    [data writeToFile:path atomically:YES]; 


    NSError  *err; 
    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) 
    { 
//  player = [[AVAudioPlayer alloc] initWithContentsOfURL: 
//     [NSURL fileURLWithPath:path] error:&err]; 
////  player.volume = 0.4f; 
//  [player prepareToPlay]; 
////  [player setNumberOfLoops:0]; 
//  [player play]; 


     player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&err]; 
//  player.delegate = self; 

     [player prepareToPlay]; 
     [player play]; 
    } 
+0

感謝張貼Ganapathy。您有多快查詢谷歌翻譯網站? – Tim 2013-04-08 21:44:25

+0

這是基於您的短信。我已經在我的應用程序中實現了它的唯一。 – Ganapathy 2013-04-09 01:08:42

相關問題