音声合成

AppFramework は、AppStudio で作成されたアプリケーションが、音声変調を伴う音声合成などのアクセシビリティ機能をサポートできるようにする、音声合成機能のための Speech QML プラグインを提供します。この TextToSpeech コンポーネントを使用すると、エンド ユーザーに音声によるフィードバックを提供して、視覚障害者を支援したり、ユーザーがデバイスを見ていないときに情報を提供したりできます。この機能を使用するには、まず次のインポート ステートメントを含める必要があります。

import ArcGIS.AppFramework.Speech 1.0

テキストから音声への変換

TextToSpeech コンポーネントの中核は say メソッドです。これは、送信されたテキストを音声文に変換します。次のサンプル コードは、ボタンをクリックすると、テキスト領域の内容を読み上げる使用例を示しています。

ColumnLayout {
    anchors {
        fill: parent
        margins: 4 * AppFramework.displayScaleFactor
    }
    TextToSpeech {
        id: textToSpeech
    }
    Rectangle {
        Layout.fillWidth: true
        Layout.preferredHeight: 200 * scaleFactor
        color: transparent
        border.color: black
        border.width: 1 * scaleFactor
        TextArea {
            id: sayText
            width: parent.width
            Material.accent: "#8f499c"
            padding: 5 * scaleFactor
            selectByMouse: true
            wrapMode: TextEdit.WrapAnywhere
            text: "This text will be read."
        }
    }
    Button {
        Layout.fillWidth: true
        text: "Say it"
        onClicked: {
            textToSpeech.say(sayText.text);
        }
    }
}

音声変調

TextToSpeech コンポーネントによって作成される音声は、コンポーネントの volumepitchrate プロパティを変更することで制御できます。これらのプロパティは、倍精度整数 (小数点以下 1 桁) で、デフォルト値は 50 です。次のサンプル コードは、volume プロパティのスライダーを提供します。

Slider {
    id: volumeSlider
    Layout.fillWidth: true
    Layout.leftMargin: 10 * AppFramework.displayScaleFactor
    Layout.rightMargin: Layout.leftMargin
    from: 0
    to: 100
    stepSize: 1
    onValueChanged: {
        textToSpeech.volume = value/100;
    }
}