2011-02-03 3 views
1

사용하지 않는 음성을 제거하여 iOS에서 flite TTS의 속도를 높일 수 있다는 것을 알고 있습니다. 어떻게 이뤄지나요?iOS에서 flite TTS 가속화

(iPhone 3G에서 변환하는 데 약 45 초가 걸리는 것으로 보이는 텍스트가 있지만 30 초 밖에 없습니다. 가능한 한 빨리 변환을 시작하고 AV 플레이어를 미리로드하지만 아직 조금 느립니다.

+0

관심 분야 텍스트가 얼마나 오래 되었습니까? –

+0

보통 약 20-40 단어입니다. 무료 앱을 확인할 수 있습니다. iTunes Store에서는 "Robot DJ"라고 불립니다. 나는 그것을 좋아하지만 결코 붙잡힌 적이 없다. –

+0

Hehe, 실제로는 정말 좋습니다. 재미 있고 좋은 음악에 대한 간단한 둘러보기를위한 것입니다. 5 *을 주셨습니다. 네가 입을 열 때까지 나는 광고를 끝내겠다. –

답변

0

짧은 문장이나 구로 변환 할 수 있습니다. 그런 다음 변환 된 하나의 음성 세그먼트를 재생하면서 나머지는 배경 스레드로 변환합니다. 이 방법 추가 : 플라이트가하고있는 동안

+0

고마워요. 저는 30 초마다 무언가를 말해야한다고 말했어야하는데, 각 것을 처리하는 데 45 초가 걸렸습니다. 말하기에는 약 10 초 정도 걸리므로 방법을 사용하면 더 가까워집니다. 2 개의 짧은 문자열을 처리하는 것이 2 배의 속도보다 빠르다고 생각하십니까? 아니면 조금 느려 집니까? –

2

이 트릭은이 일이 정말 플라이트 속도를하지 않습니다하지만 다른 일을 할 수있는 장치를 확보 할 것이다 당신은 TI는 말을 할 때

- (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"은 다른 것보다 훨씬 빠릅니다. 나는 다른 모든 속도 테스트를 수행하지 않았지만 칼은 내가 사용했던 "cmu_us_rms"보다 적어도 5 배 빠릅니다.