Сохранение текста в виде аудиофайла, как показано на снимке экрана. Теперь мой вопрос заключается в том, как делать то же самое программно. Сохранять текст в аудиофайле программно
Любая помощь очень ценится.
Сохранение текста в виде аудиофайла, как показано на снимке экрана. Теперь мой вопрос заключается в том, как делать то же самое программно. Сохранять текст в аудиофайле программно
Любая помощь очень ценится.
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"
)
Начиная с прошивкой 7 Apple, предоставляет следующий API ...
Смотрите этот ответ https://stackoverflow.com/a/17465494/215748
#import <AVFoundation/AVFoundation.h>
…
AVSpeechUtterance *utterance = [AVSpeechUtterance
speechUtteranceWithString:@"Hello world"];
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];
[synth speakUtterance:utterance];
Попробовал это bool b = [синтезатор startSpeakingString: @ «Я начал говорить» toURL: [NSURL URLWithString: @ "/ Desktop"]]; возвращает true, но не может найти файл – Rajesh
, разрешенный с помощью initFileURLWithPath :) Tnx @Zero – Rajesh
Прохладный, спасибо. Я добавил URL-создание также в код, чтобы ответ был более ясным. –