2011-02-03 6 views
1

私は、使用していない音声を削除することで、iOSのflite TTSをスピードアップすることができると理解します。これはどうですか?iOSのflite TTSのスピードアップ

(iPhone 3Gの場合)変換に約45秒かかるようなテキストがありますが、30秒しかありません。私はできるだけ早く変換を開始しています。既にAVプレーヤーをプリロードしていますが、まだ少し遅いです。

+0

あなたのテキストはどれくらいの期間ですか? –

+0

通常は約20〜40語です。あなたは無料のアプリをチェックアウトすることができます。 iTunes Storeでは「ロボットDJ」と呼ばれています。私はそれが好きですが、それは決して捕まえられませんでした。 –

+0

Hehe、それは実際には本当に良いです。私が知らない音楽のクイックツアーに面白くて良い。あなたに5 *を与えました。あなたが口にするまで、私は広告を取ります。 –

答えて

0

短い文章やフレーズに変換できます。その後、変換された1つの音声セグメントを再生しながら、残りの部分をバックグラウンドスレッドで変換します。

+0

ありがとうございます - 私は30秒ごとに何かを話さなければならないと言及すべきであり、それぞれを処理するのに45秒かかっています。スピーキングは約10秒かかるので、あなたの方法は私をより近づけます。 2つの短い文字列を処理するのが2倍の速さよりも速いと思いますか、少し遅くなりますか? –

2

このトリックは本当にFLITEをスピードアップしませんがFLITEが、それはことだやっている間に他のことを行うには、デバイスを解放します: は、このメソッドを追加します。あなたは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

音声を除去することで速度に差はありません。 1つの声「cmu_us_kal」は他の声よりはるかに高速です。私は他のすべての速度テストを実行しませんでしたが、kalは私が使っていた "cmu_us_rms"より少なくとも5倍高速です。