このページでは

TextToSpeech QML Type

TextToSpeech 型は、テキスト読み上げエンジンへのアクセスを提供します。詳細...

Import Statement: import QtTextToSpeech

プロパティ

信号

方法

詳細な説明

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: {
                    let voices = tts.availableVoices()
                    tts.voice = voices[voicesComboBox.currentIndex]
                    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() を使用して現在のロケールをサポートするボイスのリストを取得することもできます。locale プロパティを変更します。その際、入力テキストの言語および希望する音声出力のアクセントに適切に一致するavailableLocales()のいずれかを使用してください。これにより、ほとんどのプラットフォームで利用可能な音声のリストが変更されます。その後、voice プロパティで利用可能な音声のいずれかを使用します。

すべてのエンジンがすべての機能をサポートしているわけではありません。engineCapabilities() 関数を使用して利用可能な機能をテストし、それに応じて type の使用方法を調整してください。

注: エンジンがサポートするロケールや音声は 、通常、オペレーティングシステムの設定によって異なります。例えば、macOS では、エンドユーザーは「システム環境設定」の「アクセシビリティ」パネルから音声をインストールできます。

プロパティのドキュメント

engine : string

テキストを音声に変換するために使用されるエンジン。

エンジンを変更すると、再生中の音声が停止します。

ほとんどのプラットフォームでは、エンジンを変更すると、available locales およびavailable voices のリストが更新されます。

engineCapabilities : enumeration [since 6.6]

このプロパティには、現在のエンジンで実装されている機能が格納されています。

このプロパティは Qt 6.6 で導入されました。

engine およびQTextToSpeech::Capabilityも参照してください 。

engineParameters : map

このプロパティには、エンジン固有のパラメータが格納されます。

「engine」も参照してください 。

locale : locale

このプロパティには、現在使用中のロケールが格納されます。

デフォルトでは、システムのロケールが使用されます。

voiceも参照してください 。

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 までの範囲の現在の音量が格納されます。

デフォルト値は、プラットフォームのデフォルト音量です。

Signal ドキュメント

[since 6.6] aboutToSynthesize(number id)

このシグナルは、エンジンが `id` の音声合成を開始する直前に発せられます。アプリケーションはこのシグナルを利用して、`voice ` の属性に直前の変更を加えることや、`enqueue()` を通じてキューに入れられたテキストの処理状況を追跡することができます。

注: 対応するハンドラは `onAboutToSynthesize` です。

このシグナルは Qt 6.6 で導入されました。

enqueue() およびvoiceも参照してください 。

void errorOccurred(enumeration reason, string errorString)

このシグナルは、エラーが発生し、state がTextToSpeech.Error に設定された後に発信されます。reason パラメータはエラーの種類を指定し、errorString は人間が読み取れる形式のエラー説明を提供します。

注: 対応するハンドラは `onErrorOccurred` です。

state 、errorReason()、およびerrorString()も参照してください 。

[since 6.6] sayingWord(string word, int id, int start, int length)

このシグナルは、発話 `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 で使用可能な音声のリストを保持します。

[since 6.6] int enqueue(string utterance)

utterance を読み上げるテキストのキューに追加し、読み上げを開始します。

エンジンの `state ` が現在 `Ready` の場合、`utterance ` が直ちに読み上げられます。それ以外の場合は、エンジンが現在のテキストの読み上げを完了した後、`utterance ` の読み上げを開始します。

エンジンがキュー内の次のテキストエントリに進むたびに、aboutToSynthesize() シグナルが発行されます。これにより、アプリケーションは進行状況を追跡し、音声属性に直前の変更を加えることができます。

stop() を呼び出すと、キューがクリアされます。

このメソッドは Qt 6.6 で導入されました。

say()、stop()、およびaboutToSynthesize()も参照してください 。

enumeration errorReason()

エンジンがエラーを報告した理由を返します。

QTextToSpeech::ErrorReasonも参照してください 。

string errorString()

現在のエンジンエラーメッセージを返します。

[since 6.6] list<voice> findVoices(map criteria)

指定されたすべてのcriteria に一致するボイスの一覧を返します。

criteria は、音声のプロパティ名からプロパティ値へのマップであり、次のような検索条件の組み合わせをサポートしています:

let daniel = tts.findVoices({
    "name": "Daniel"
})
let maleEnglish = tts.findVoices({
    "gender": Voice.Male,
    "language": Qt.locale('en')
})

このメソッドは Qt 6.6 で導入されました。

VoiceSelectorも参照してください 。

void pause(BoundaryHint boundaryHint)

boundaryHint で現在の音声再生を一時停止します。

boundaryHint が尊重されるかどうかは、engine によって決まります。

resume()、QTextToSpeech::BoundaryHint 、およびPauseResumeも参照してください 。

void resume()

pause() が呼び出された後に、発話を再開します。

pause()も参照してください 。

void say(string text)

text の音声合成を開始します。

この関数は、音声の合成を非同期で開始し、テキストをデフォルトのオーディオ出力デバイスに読み上げます。

        RowLayout {
            Button {
                text: qsTr("Speak")
                enabled: [TextToSpeech.Paused, TextToSpeech.Ready].includes(tts.state)
                onClicked: {
                    let voices = tts.availableVoices()
                    tts.voice = voices[voicesComboBox.currentIndex]
                    tts.say(input.text)
                }
            }

注: 新しく合成されたテキストの読み上げを開始する前に、進行中のすべての 読み上げが停止されます。

現在の状態は `state ` プロパティで確認でき、読み上げが開始されると `QTextToSpeech::Speaking ` に設定されます。読み上げが完了すると、`state ` は `QTextToSpeech::Ready` に設定されます。

stop()、pause()、およびresume()も参照してください 。

void stop(BoundaryHint boundaryHint)

boundaryHint で現在の読み取りを停止し、保留中のテキストのキューをクリアします。

読み込みを再開することはできません。boundaryHint が尊重されるかどうかは、エンジンによって異なります。

say()、enqueue()、pause()、およびQTextToSpeech::BoundaryHintも参照してください 。

© 2026 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.