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 のいずれかである必要があります。
プラットフォームによっては、ボイスを設定することで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も参照のこと 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.