2011-02-03 2 views
1

Я понимаю, что можно ускорить flite TTS в iOS, удалив неиспользуемые голоса. Как это делается?Ускорение флиса TTS в iOS

У меня есть текст, который, кажется, занимает около 45 секунд, чтобы конвертировать (на iPhone 3G), но у меня есть только 30 секунд. Я как можно скорее начинаю конверсию и предварительно загружаю AV-плеер, но я все еще слишком медленный.

+0

Из интереса, как долго Ваш текст? –

+0

Обычно около 20-40 слов. Вы можете проверить бесплатное приложение. Он называется «Robot DJ» в iTunes Store. Мне это нравится, но он никогда не подходил. –

+0

Хе-хе, это на самом деле действительно хорошо. Забавно и хорошо для быстрой экскурсии по музыке, которую я не знаю. Дал вам 5 *. Я возьму объявление, пока вы не услышите слова. –

ответ

0

Вы можете преобразовать в короткие предложения или фразы. Затем начните воспроизведение одного преобразованного речевого сегмента, все еще преобразуя остальные в фоновый поток.

+0

Спасибо - я должен был упомянуть, что я должен что-то говорить каждые 30 секунд, и мне приходится 45 секунд обрабатывать каждый. Говоря занимает около 10 секунд, чтобы ваш метод приблизил меня. Считаете ли вы, что обработка двух коротких строк происходит быстрее, чем в два раза, или будет немного медленнее? –

2

Этот трюк не будет реально ускорить Flite, но освободит устройство, чтобы делать другие вещи, в то время как Флайт делает это вещь: Добавить этот метод:

- (void)speak:(NSString *)message { 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    [fliteEngine speakText:message];  
    [pool release]; 
} 

Если вы хотите ти говорить, назовем его с этим:

[self performSelectorInBackground:@selector(speak:) withObject:@"Text to speak!"]; 

Это поместит ваше приложение в режиме мульти-протектором и будет оказывать речь и воспроизводить его в качестве фонового потока. Это позволит вашему приложению уйти и делать другие вещи, пока это происходит. Я также заметил, что кажется, что текст немного ускорен таким образом. Надеюсь, это даст вам немного, что вам нужно.

+0

Спасибо, я уже пронизываю - это сэкономило несколько секунд. Вы когда-нибудь слышали об удалении голосов, чтобы ускорить Flite TTS - я действительно не понимаю, почему это сработает, но несколько сообщений сказали, что это так. –

1

Извлечение голосов не влияет на скорость. Один голос «cmu_us_kal» намного быстрее, чем другие. Я не выполнял тесты скорости на всех остальных, но kal был как минимум в 5 раз быстрее, чем «cmu_us_rms», который я использовал.