Ускорение Flite TTS в iOS - PullRequest
       2

Ускорение Flite TTS в iOS

1 голос
/ 03 февраля 2011

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

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

Ответы [ 3 ]

2 голосов
/ 04 февраля 2011

Этот трюк на самом деле не ускорит flite, но освободит устройство для выполнения других задач, пока flite делает это: Добавьте этот метод:

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

Когда ты хочешь говорить, назови это так:

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

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

1 голос
/ 04 февраля 2011

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

0 голосов
/ 03 февраля 2011

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

...