2015-04-17 2 views

ответ

3

NSSpeechSynthesizer делает эту работу.

Скажем, у нас есть свойство:

@property NSSpeechSynthesizer *synth; 

, что мы инициализируем так:

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

мы можем сделать:

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

Перед сохранением, мы, вероятно, хотите изменить голос или объем:

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

, где value for volume выражается в единицах с плавающей точкой в ​​диапазоне от 0,0 до 1,0 и voiceID - это voice identifier.




Чтобы просмотреть все доступные голосовые идентификаторы:

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

Выход на OS X 10.10.3 со всеми голосами установленными:

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

Попробовал это bool b = [синтезатор startSpeakingString: @ «Я начал говорить» toURL: [NSURL URLWithString: @ "/ Desktop"]]; возвращает true, но не может найти файл – Rajesh

+1

, разрешенный с помощью initFileURLWithPath :) Tnx @Zero – Rajesh

+0

Прохладный, спасибо. Я добавил URL-создание также в код, чтобы ответ был более ясным. –

0

Начиная с прошивкой 7 Apple, предоставляет следующий API ...

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

Смотрите этот ответ 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

Мой вопрос заключается в сохранении в аудиофайл вместо Speak через динамик. Скорее мне нужна поддержка Mac. – Rajesh

+0

Да, конвертировать текст в аудио, а затем записывать этот звук .... – Rahul

+0

Смотрите этот URL: http://www.appcoda.com/text-to-speech-ios-tutorial/ – Rahul

Смежные вопросы