5

OpenEars FliteController クラスを使用して、テキストを音声に変換しています。

私は方法を使用しています:

[self.fliteController say:@"アプリに声を出してもらいたいフレーズ。" withVoice :@"cmu_us_awb8k"];

withVoice: の後に入力できる引数のオプションは次のとおりです。

cmu_us_awb8k
cmu_us_rms8k
cmu_us_slt8k
cmu_time_awb
cmu_us_awb
cmu_us_kal
cmu_us_kal16
cmu_us_rms
cmu_us_slt

これらすべての引数を withVoice で試しました。

しかし、私のクライアントは声に満足していません。彼は、これらはすべて速いと私に言いました。そのため、 withVoice: 引数を使用して音声を遅くする方法が必要です。どうすればいいですか?他のスピーチボイスはありますか?

4

2 に答える 2

4

速度/ピッチ/分散シフトは、バージョン .911 の OpenEars の機能になりました。次のように使用できます。

FliteController の次のプロパティを使用して、音声の速度、ピッチ、可変性を変更します。

duration_stretch // Duration of speech
target_mean // Average pitch of speech
target_stddev // Variance

たとえば、このメッセージを送信する直前に:

[self.fliteController say:@"アプリに声を出してもらいたいフレーズ。" withVoice:@"cmu_us_awb8k"];

self.fliteController に次の設定を行うことができます。

self.fliteController.duration_stretch = 1.5; // Slow down the speed a bit
self.fliteController.target_mean = 1.2; // Raise the pitch
self.fliteController.target_stddev = 1.5; // Increase the variance

1.0 がデフォルトで、0.0 が最小値で、2.0 がおそらく最大の有用な値です (2.0 より高くすることはできますが、おそらく有用な値にはなりません)。

.5 の duration_stretch は 1.0 の 2 倍の速度になり、2.0 の duration_stretch は 1.0 の半分の速度になります。2.0 の target_mean または target_stddev は、平均ピッチ周波数を 2 倍にするか分散を 2 倍にし、0.5 はそれらを半分に減らします。

これらの設定を設定または上書きする必要はありません。使用しない場合、音声のデフォルトに設定されます。それらをオーバーライドした後にデフォルトに戻したい場合は、単純にすべてを 1.0 に設定します。

self.fliteController.duration_stretch = 1.0; // Reset the speed
self.fliteController.target_mean = 1.0; // Reset the pitch
self.fliteController.target_stddev = 1.0; // Reset the variance
于 2011-06-23T12:04:49.377 に答える
1

これはOpenEarsの場合だと思います。OpenEarsでこれを構成することについてはわかりません。ただし、要件に応じてカスタマイズできるこのデモを見ることができます。声のピッチ/バリアンス/スピードを設定できるように。リンクからリポジトリのクローンを作成します。

これに移行できれば、それが解決策になります。このデモに疑問がある場合は、TextToSpeechの再生/一時停止/停止オプションを使用して1つのデモを準備したので、きっと役に立ちます。

それが役に立てば幸い。

于 2011-06-03T13:01:10.393 に答える