TextToSpeech QML Type
TextToSpeech型は音声合成エンジンへのアクセスを提供する。詳細...
Import Statement: | import QtTextToSpeech |
プロパティ
- engine : string
- engineCapabilities : enumeration
(since 6.6)
- engineParameters : map
- locale : locale
- pitch : double
- rate : double
- state : enumeration
- voice : Voice
- volume : double
シグナル
- aboutToSynthesize(number id)
(since 6.6)
- void errorOccurred(enumeration reason, string errorString)
- sayingWord(string word, int id, int start, int length)
(since 6.6)
メソッド
- list<string> availableEngines()
- list<Voice> availableLocales()
- list<Voice> availableVoices()
- enqueue(string utterance)
(since 6.6)
- enumeration errorReason()
- string errorString()
- list<voice> findVoices(map criteria)
(since 6.6)
- pause(BoundaryHint boundaryHint)
- resume()
- say(string text)
- stop(BoundaryHint boundaryHint)
詳細説明
デフォルトのオーディオ・デバイスにテキストの読み上げを開始するにはsay() を使用し、テキストの読み上げを制御するにはstop(),pause(),resume() を使用する。
TextToSpeech { id: tts volume: volumeSlider.value pitch: pitchSlider.value rate: rateSlider.value ... RowLayout { Button { text: qsTr("Speak") enabled: [TextToSpeech.Paused, TextToSpeech.Ready].includes(tts.state) onClicked: { tts.say(input.text) } } Button { text: qsTr("Pause") enabled: tts.state == TextToSpeech.Speaking onClicked: tts.pause() visible: tts.engineCapabilities & TextToSpeech.Capabilities.PauseResume } Button { text: qsTr("Resume") enabled: tts.state == TextToSpeech.Paused onClicked: tts.resume() visible: tts.engineCapabilities & TextToSpeech.Capabilities.PauseResume } ...
テキストを PCM データに合成してさらに処理するには、synthesize() を使用します。
音声を設定するには、VoiceSelector の付属プロパティを次のように使用します:
TextToSpeech { VoiceSelector.locale: Qt.locale("en_UK") VoiceSelector.gender: Voice.Male }
指定されたすべての条件に一致する最初の音声が使用されます。すべての条件に一致する音声がない場合、音声は変更されません。
あるいは、findVoices() を使用して、一致する音声のリストを取得するか、availableVoices() を使用して、現在のロケールをサポートする音声のリストを取得します。入力テキストの言語と、希望する音声出力のアクセントに適したavailableLocales() のいずれかを使用して、locale プロパティを変更します。これにより、ほとんどのプラットフォームで利用可能なボイスのリストが変更されます。次に、voice プロパティで利用可能なボイスのいずれかを使用します。
すべてのエンジンがすべての機能をサポートしているわけではありません。engineCapabilities()関数を使用して、どの機能が使用可能かをテストし、それに応じて型の使用法を調整してください。
注意: エンジンがどのロケールとボイスをサポートするかは、通常オペレーティング・システムの設定に依存します。例えば、macOSの場合、エンドユーザーはシステム環境設定の アクセシビリティパネルから音声をインストールできます。
プロパティ・ドキュメンテーション
engine : string |
音声合成に使用するエンジン。
エンジンを変更すると、進行中の音声が停止します。
ほとんどのプラットフォームでは、エンジンを変更するとavailable locales とavailable voices のリストが更新されます。
engineCapabilities : enumeration |
このプロパティは、現在のエンジンが実装している機能を保持します。
このプロパティは Qt 6.6 で導入されました。
engine およびQTextToSpeech::Capabilityも参照してください 。
engineParameters : map |
このプロパティは、エンジン固有のパラメータを保持します。
engineも参照してください 。
locale : locale |
pitch : double |
このプロパティは音声ピッチを保持し、範囲は -1.0 ~ 1.0 です。
デフォルトの 0.0 は通常の音声ピッチです。
rate : double |
このプロパティは、現在の音声レートを-1.0 から 1.0 の範囲で保持します。
デフォルトの 0.0 は、通常の音声フローです。
state : enumeration |
このプロパティは、音声合成器の現在の状態を保持する。
onStateChanged: updateStateLabel(state) function updateStateLabel(state) { switch (state) { case TextToSpeech.Ready: statusLabel.text = qsTr("Ready") break case TextToSpeech.Speaking: statusLabel.text = qsTr("Speaking") break case TextToSpeech.Paused: statusLabel.text = qsTr("Paused...") break case TextToSpeech.Error: statusLabel.text = qsTr("Error!") break } }
QTextToSpeech::State 、say()、stop()、pause()も参照 。
voice : Voice |
このプロパティは、発話に使用される音声を保持します。
ボイスは、エンジン用のvoices available の1つである必要があります。
プラットフォームによっては、ボイスを設定することでlocale やpitch などの他のボイス属性が変更されます。これらの変更は、シグナルの放出をトリガーします。
volume : double |
このプロパティは、0.0 から 1.0 の範囲で現在の音量を保持します。
デフォルト値は、プラットフォームのデフォルト音量です。
シグナルの説明
|
void errorOccurred(enumeration reason, string errorString) |
このシグナルは、エラーが発生し、state がTextToSpeech.Error
に設定された後に発行されます。reason パラメータはエラーのタイプを指定し、errorString は人間が読めるエラーの説明を提供します。
注: 対応するハンドラはonErrorOccurred
。
state 、errorReason ()、errorString ()も参照の こと。
|
このシグナルは、発話id のstart とlength で示されるテキストのスライスであるword がオーディオ デバイスに再生されたときに発行されます。
注: このシグナルは、エンジンがWordByWordProgress の機能を持っている必要があります。
次のコードは、TextArea input
で発話された単語をハイライトします:
onSayingWord: (word, id, start, length)=> { input.select(start, start + length) }
注: 対応するハンドラはonSayingWord
です。
このシグナルは Qt 6.6 で導入されました。
QTextToSpeech::Capability およびsay()も参照してください 。
メソッド ドキュメント
list<string> availableEngines() |
サポートされている音声合成エンジンプラグインのリストを保持します。
list<Voice> availableLocales() |
アクティブなengine でサポートされているロケールのリストを保持します。
list<Voice> availableVoices() |
現在のlocale で利用可能な音声のリストを保持します。
|
発話するテキストのキューにutterance を追加し、発話を開始します。
エンジンのstate が現在Ready
の場合、utterance がすぐに話し始められます。そうでない場合、エンジンは現在のテキストを話し終えると、utterance を話し始める。
エンジンがキューの次のテキスト・エントリに進むたびに、aboutToSynthesize ()シグナルが発せられる。これにより、アプリケーションは進行状況を把握し、音声属性を直前に変更することができます。
stop() を呼び出すと、キューがクリアされます。
このメソッドはQt 6.6で導入されました。
say(),stop(),aboutToSynthesize()も参照してください 。
enumeration errorReason() |
エンジンがエラーを報告した理由を返します。
QTextToSpeech::ErrorReasonも参照して ください。
string errorString() |
現在のエンジンのエラーメッセージを返します。
|
指定されたすべてのcriteria にマッチするボイスのリストを返します。
criteria は、ボイスのプロパティ名からプロパティ値へのマップであり、以下のような検索条件の組み合わせに対応しています:
let daniel = tts.findVoices({ "name": "Daniel" }) let maleEnglish = tts.findVoices({ "gender": Voice.Male, "language": Qt.locale('en') })
このメソッドは Qt 6.6 で導入されました。
VoiceSelectorも参照してください 。
pause(BoundaryHint boundaryHint) |
現在の音声をboundaryHint で一時停止します。
boundaryHint が尊重されるかどうかは、engine に依存します。
resume()、QTextToSpeech::BoundaryHint 、PauseResumeも参照して ください。
say(string text) |
text の合成を開始する。
この関数は、非同期で音声の合成を開始し、デフォルトの音声出力デバイスにテキストを読み 上げます。
RowLayout { Button { text: qsTr("Speak") enabled: [TextToSpeech.Paused, TextToSpeech.Ready].includes(tts.state) onClicked: { tts.say(input.text) } }
注意: 最近合成されたテキストを読み始める前に、進行中の読み上げはすべて停止されます。
現在の状態はstate プロパティで確認でき、読み上げが開始されるとQTextToSpeech::Speaking に設定されます。読み上げが終了すると、state はQTextToSpeech::Ready に設定されます。
stop(BoundaryHint boundaryHint) |
現在の読み取りをboundaryHint で停止し、保留中のテキストのキューをクリアする。
読み込みを再開することはできない。boundaryHint が尊重されるかどうかはエンジンに依存します。
say()、enqueue()、pause()、QTextToSpeech::BoundaryHintも参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。