2015-04-17 10 views

Antwort

3

NSSpeechSynthesizer macht diesen Job.

Sagen wir die Eigenschaft haben:

@property NSSpeechSynthesizer *synth; 

, die wir wie folgt initialisieren:

synth = [[NSSpeechSynthesizer alloc] initWithVoice:nil]; 

wir tun können:

NSURL *saveURL = [NSURL fileURLWithPath:[@"~/Desktop/SpokenText.aiff" stringByExpandingTildeInPath]]; 
[synth startSpeakingString:@"A spoken short text" toURL:saveURL]; 

Vor dem Speichern wir wahrscheinlich das ändern wollen Stimme oder das Volumen:

[synth setVolume:0.5f]; 
[synth setVoice:voiceID]; 

wobei der value for volume in Fließkomma-Einheiten von 0.0 bis 1.0 und voiceID ist ein voice identifier ausgedrückt wird.




Um alle verfügbaren Sprachkennungen finden Sie unter:

NSArray *voiceIdentifiers = [NSSpeechSynthesizer availableVoices]; 
NSLog(@"%li %@",voiceIdentifiers.count,voiceIdentifiers); 

Ausgabe auf OS X 10.10.3 mit allen installierten Stimmen:

101 (
    "com.apple.speech.synthesis.voice.Agnes", 
    "com.apple.speech.synthesis.voice.Albert", 
    "com.apple.speech.synthesis.voice.Alex", 
    "com.apple.speech.synthesis.voice.alice.premium", 
    "com.apple.speech.synthesis.voice.allison.premium", 
    "com.apple.speech.synthesis.voice.alva.premium", 
    "com.apple.speech.synthesis.voice.amelie.premium", 
    "com.apple.speech.synthesis.voice.angelica.premium", 
    "com.apple.speech.synthesis.voice.anna.premium", 
    "com.apple.speech.synthesis.voice.audrey.premium", 
    "com.apple.speech.synthesis.voice.aurelie.premium", 
    "com.apple.speech.synthesis.voice.ava.premium", 
    "com.apple.speech.synthesis.voice.BadNews", 
    "com.apple.speech.synthesis.voice.Bahh", 
    "com.apple.speech.synthesis.voice.Bells", 
    "com.apple.speech.synthesis.voice.Boing", 
    "com.apple.speech.synthesis.voice.Bruce", 
    "com.apple.speech.synthesis.voice.Bubbles", 
    "com.apple.speech.synthesis.voice.carlos.premium", 
    "com.apple.speech.synthesis.voice.carmit.premium", 
    "com.apple.speech.synthesis.voice.catarina.premium", 
    "com.apple.speech.synthesis.voice.Cellos", 
    "com.apple.speech.synthesis.voice.cem.premium", 
    "com.apple.speech.synthesis.voice.chantal.premium", 
    "com.apple.speech.synthesis.voice.claire.premium", 
    "com.apple.speech.synthesis.voice.damayanti.premium", 
    "com.apple.speech.synthesis.voice.daniel.premium", 
    "com.apple.speech.synthesis.voice.Deranged", 
    "com.apple.speech.synthesis.voice.diego.premium", 
    "com.apple.speech.synthesis.voice.ellen.premium", 
    "com.apple.speech.synthesis.voice.ewa.premium", 
    "com.apple.speech.synthesis.voice.federica.premium", 
    "com.apple.speech.synthesis.voice.felipe.premium", 
    "com.apple.speech.synthesis.voice.fiona.premium", 
    "com.apple.speech.synthesis.voice.Fred", 
    "com.apple.speech.synthesis.voice.GoodNews", 
    "com.apple.speech.synthesis.voice.henrik.premium", 
    "com.apple.speech.synthesis.voice.Hysterical", 
    "com.apple.speech.synthesis.voice.ioana.premium", 
    "com.apple.speech.synthesis.voice.iveta.premium", 
    "com.apple.speech.synthesis.voice.joana.premium", 
    "com.apple.speech.synthesis.voice.jorge.premium", 
    "com.apple.speech.synthesis.voice.juan.premium", 
    "com.apple.speech.synthesis.voice.Junior", 
    "com.apple.speech.synthesis.voice.kanya.premium", 
    "com.apple.speech.synthesis.voice.karen.premium", 
    "com.apple.speech.synthesis.voice.kate.premium", 
    "com.apple.speech.synthesis.voice.Kathy", 
    "com.apple.speech.synthesis.voice.katya.premium", 
    "com.apple.speech.synthesis.voice.klara.premium", 
    "com.apple.speech.synthesis.voice.kyoko.premium", 
    "com.apple.speech.synthesis.voice.laura.premium", 
    "com.apple.speech.synthesis.voice.lee.premium", 
    "com.apple.speech.synthesis.voice.lekha.premium", 
    "com.apple.speech.synthesis.voice.luca.premium", 
    "com.apple.speech.synthesis.voice.luciana.premium", 
    "com.apple.speech.synthesis.voice.magnus.premium", 
    "com.apple.speech.synthesis.voice.mariska.premium", 
    "com.apple.speech.synthesis.voice.markus.premium", 
    "com.apple.speech.synthesis.voice.mei-jia.premium", 
    "com.apple.speech.synthesis.voice.melina.premium", 
    "com.apple.speech.synthesis.voice.milena.premium", 
    "com.apple.speech.synthesis.voice.moira.premium", 
    "com.apple.speech.synthesis.voice.monica.premium", 
    "com.apple.speech.synthesis.voice.nicolas.premium", 
    "com.apple.speech.synthesis.voice.nikos.premium", 
    "com.apple.speech.synthesis.voice.nora.premium", 
    "com.apple.speech.synthesis.voice.oliver.premium", 
    "com.apple.speech.synthesis.voice.oskar.premium", 
    "com.apple.speech.synthesis.voice.otoya.premium", 
    "com.apple.speech.synthesis.voice.paola.premium", 
    "com.apple.speech.synthesis.voice.paulina.premium", 
    "com.apple.speech.synthesis.voice.petra.premium", 
    "com.apple.speech.synthesis.voice.Organ", 
    "com.apple.speech.synthesis.voice.Princess", 
    "com.apple.speech.synthesis.voice.Ralph", 
    "com.apple.speech.synthesis.voice.samantha.premium", 
    "com.apple.speech.synthesis.voice.sara.premium", 
    "com.apple.speech.synthesis.voice.satu.premium", 
    "com.apple.speech.synthesis.voice.serena.premium", 
    "com.apple.speech.synthesis.voice.sin-ji.premium", 
    "com.apple.speech.synthesis.voice.soledad.premium", 
    "com.apple.speech.synthesis.voice.susan.premium", 
    "com.apple.speech.synthesis.voice.tarik.premium", 
    "com.apple.speech.synthesis.voice.tessa.premium", 
    "com.apple.speech.synthesis.voice.thomas.premium", 
    "com.apple.speech.synthesis.voice.ting-ting.premium", 
    "com.apple.speech.synthesis.voice.tom.premium", 
    "com.apple.speech.synthesis.voice.Trinoids", 
    "com.apple.speech.synthesis.voice.veena.premium", 
    "com.apple.speech.synthesis.voice.Vicki", 
    "com.apple.speech.synthesis.voice.Victoria", 
    "com.apple.speech.synthesis.voice.Whisper", 
    "com.apple.speech.synthesis.voice.xander.premium", 
    "com.apple.speech.synthesis.voice.yannick.premium", 
    "com.apple.speech.synthesis.voice.yelda.premium", 
    "com.apple.speech.synthesis.voice.yuna.premium", 
    "com.apple.speech.synthesis.voice.yuri.premium", 
    "com.apple.speech.synthesis.voice.Zarvox", 
    "com.apple.speech.synthesis.voice.zosia.premium", 
    "com.apple.speech.synthesis.voice.zuzana.premium" 
) 
+0

Habe es versucht bool b = [synthesizer startSpeakingString: @ "Ich habe angefangen zu sprechen" toURL: [NSURL URLWithString: @ "/ Desktop"]]; gibt true zurück, kann aber die Datei – Rajesh

+1

mit initFileURLWithPath nicht finden :) Tnx @Zero – Rajesh

+0

Cool, danke. Ich habe die URL-Erstellung auch dem Code hinzugefügt, so dass die Antwort klarer ist. –

0

von iOS Ab 7 Apple die folgenden API bietet ...

https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVSpeechSynthesizer_Ref/Reference/Reference.html

Sehen Sie diese Antwort https://stackoverflow.com/a/17465494/215748

#import <AVFoundation/AVFoundation.h> 
… 
AVSpeechUtterance *utterance = [AVSpeechUtterance 
          speechUtteranceWithString:@"Hello world"]; 
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init]; 
[synth speakUtterance:utterance]; 
+0

Meine Frage ist, wie Audiodatei statt sprechen über Lautsprecher zu speichern. Ich brauche eher Unterstützung von Mac. – Rajesh

+0

Yeah, wandeln Sie Text in Audio um und notieren Sie dieses Audio .... – Rahul

+0

Sehen Sie diese URL: http://www.appcoda.com/text-to-speech-ios-tutorial/ – Rahul