2013-07-04 16 views
5

Pracuję nad aplikacją, w której muszę odtwarzać ciąg jako audio.Tekst na mowę w obiektywnym iPhone'ie

Używam API http://translate.google.com/translate_tts?tl=en&q=Hello do wypowiadania ciągu znaków, ale jest nieco powolny.

Czy istnieje jakaś biblioteka w celu-c, aby odtwarzać ciąg jako dźwięk "Tekst na mowę".

+0

Czy to jest aplikacja na iOS lub MAC OSX? ponieważ, jak sądzę, obiekt c ma jakiś sposób na odtwarzanie dźwięku strunowego. – Suryakant

+0

Jest to aplikacja na iOS. –

+1

odwiedź ten [link] (http://www.politepix.com/openears/) nie jestem tego pewien, ale może Ci się to udać :) – Suryakant

Odpowiedz

19

Spójrz na klasy AVSpeechUtterance i AVSpeechSynthesizer w io7. Zasadniczo możesz po prostu wykonać następujące czynności.

 AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:text]; 
    AVSpeechSynthesizer *syn = [[[AVSpeechSynthesizer alloc] init]autorelease]; 
    [syn speakUtterance:utterance]; 
+1

Ale jak mogę zrobić dla iOS 6? – lenhhoxung

+0

Ssml jest obsługiwany czy nie? –

0

Nuance NDEV Mobile iOS SDK może być najlepszym wyborem pod względem jakości i wydajności, ale w przeciwieństwie do OpenEars nie jest darmowy. To powiedziawszy, mamy 40 różnych języków i 61 różnych dostępnych głosów, a biblioteka ma podsystem, który nie opiera się na HTTP (i nadal jest oparty na sieci), z którym możesz grać.

Po zalogowaniu się na konto ..

  • Tworzenie aplikacji z zamiarem wykorzystania platformy iOS
  • Pobierz iOS SDK (jest to aplikacja próbka tam, ale jestem ll opisać ten proces, aby włączyć go do swojej aplikacji)
  • Zaimportuj SpeechKit.framework i związane z nimi ramach (patrz docs)
  • Określ poświadczenia z informacji z aplikacji stworzonej powyżej
  • Initialize SpeechKit z tych informacji
  • Tworzenie instancji Vocalizer, z określeniem języka lub głosu
  • Używaj Vocalizer instancji do speakString z tekstem, który chcesz syntetyzują
  • Uchwyt metody Delegat:
    • willBeginSpeakingString:(NSString *)text
    • didFinishSpeakingString:(NSString *)text

Uwaga: Interfejs API Vocalizer obsługuje także SSML.

+0

Cześć Nirvana, czy jest jakaś opcja ustawienia czasu trwania głosu w Nuance? –

3

import ramy:

#import <AVFoundation/AVFoundation.h> 
#import <QuartzCore/QuartzCore.h> 

kod pliku .m

NSString *str = @"Hello friend, how are you?"; 

AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init]; 

AVSpeechUtterance *speechutt = [AVSpeechUtterance speechUtteranceWithString:strtext]; 
[speechutt setRate:0.3f]; 
speechutt.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-us"]; 
[synthesizer speakUtterance:speechutt]; 

opcja voiceWithLanguage w dowolnym języku do Speek obsługiwane że.

Arabic (Saudi Arabia) - ar-SA 
Chinese (China) - zh-CN 
Chinese (Hong Kong SAR China) - zh-HK 
Chinese (Taiwan) - zh-TW 
Czech (Czech Republic) - cs-CZ 
Danish (Denmark) - da-DK 
Dutch (Belgium) - nl-BE 
Dutch (Netherlands) - nl-NL 
English (Australia) - en-AU 
English (Ireland) - en-IE 
English (South Africa) - en-ZA 
English (United Kingdom) - en-GB 
English (United States) - en-US 
French (Canada) - fr-CA 
French (France) - fr-FR 
Finnish (Finland) - fi-FI 
German (Germany) - de-DE 
Hindi (India) - hi-IN 
Hungarian (Hungary) - hu-HU 
Indonesian (Indonesia) - id-ID 
Italian (Italy) - it-IT 
Japanese (Japan) - ja-JP 
Korean (South Korea) - ko-KR 
Norwegian (Norway) - no-NO 
Romanian (Romania) - ro-RO 
Russian (Russia) - ru-RU 
Slovak (Slovakia) - sk-SK 
Spanish (Mexico) - es-MX 
Swedish (Sweden) - sv-SE 
Turkish (Turkey) - tr-TR 
+0

to posible audio do tekstu? –