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: {
                    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 localesavailable 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::Statesay()、stop()、pause()も参照


voice : Voice

このプロパティは、発話に使用される音声を保持します。

ボイスは、エンジン用のvoices available の1つである必要があります。

プラットフォームによっては、ボイスを設定することでlocalepitch などの他のボイス属性が変更されます。これらの変更は、シグナルの放出をトリガーします。


volume : double

このプロパティは、0.0 から 1.0 の範囲で現在の音量を保持します。

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


シグナルの説明

[since 6.6] aboutToSynthesize(number id)

このシグナルは、エンジンがid 用の音声合成を開始する直前に発せられます。アプリケーションはこのシグナルを使用して、voice 属性を直前に変更したり、enqueue() 経由でエンキューされたテキストのプロセスを追跡したりできます。

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

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

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


void errorOccurred(enumeration reason, string errorString)

このシグナルは、エラーが発生し、stateTextToSpeech.Error に設定された後に発行されます。reason パラメータはエラーのタイプを指定し、errorString は人間が読めるエラーの説明を提供します。

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

stateerrorReason ()、errorString)も参照の こと。


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

このシグナルは、発話idstartlength で示されるテキストのスライスである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] 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も参照してください


pause(BoundaryHint boundaryHint)

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

boundaryHint が尊重されるかどうかは、engine に依存します。

resume()、QTextToSpeech::BoundaryHintPauseResumeも参照して ください。


resume()

pause() が呼び出された後、発言を再開する。

pause()も参照


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 に設定されます。読み上げが終了すると、stateQTextToSpeech::Ready に設定されます。

stop ()、pause ()、resume)も参照のこと


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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。