文字-语音切换

AppFramework 提供了一种用于文字-语音切换功能的 Speech QML 插件,该插件可使 AppStudio 创建的应用程序支持 辅助功能(例如带有语音调制的文字-语音切换功能)。该 TextToSpeech 组件可用于向最终用户提供音频反馈,包括对视力受损用户的帮助,以及在用户未看设备时提供信息。要使用此功能,您必须包含以下 import 语句:

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);
        }
    }
}

语音调制

可以通过修改组件的 volumepitchrate 属性来控制由 TextToSpeech 组件生成的语音。每个属性均存储为一个双精度整数(一个小数点),默认值为 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;
    }
}