2015-04-17 15 views

risposta

3

NSSpeechSynthesizer fa quel lavoro.

Supponiamo di avere la proprietà:

@property NSSpeechSynthesizer *synth; 

che inizializziamo così:

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

possiamo fare:

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

Prima di salvare, probabilmente desidera cambiare la voce o il volume:

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

dove il value for volume è espresso in unità in virgola mobile che vanno da 0,0 a 1,0 e voiceID è un voice identifier.




Per vedere tutti gli identificatori vocali disponibili:

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

Uscita su OS X 10.10.3 con tutte le voci installate:

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

L'ho provato bool b = [sintetizzatore startSpeakingString: @ "Ho iniziato a parlare" toURL: [NSURL URLWithString: @ "/ Desktop"]]; restituisce true ma non riesce a trovare il file – Rajesh

+1

risolto con initFileURLWithPath :) Tnx @Zero – Rajesh

+0

Cool, grazie. Ho aggiunto la creazione di URL anche al codice in modo che la risposta sia più chiara. –

0

A partire da iOS 7 Apple fornisce la seguente API ...

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

Vedere questa risposta 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

La mia domanda è quello di salvare il file come l'audio, invece di parlare tramite l'altoparlante. Piuttosto ho bisogno del supporto mac. – Rajesh

+0

Sì, converti Testo in audio e quindi registra questo audio .... – Rahul

+0

Vedi questo URL: http://www.appcoda.com/text-to-speech-ios-tutorial/ – Rahul

Problemi correlati