O AppFramework fornece um complemento Speech QML para funcionalidade de texto para voz que permite que os aplicativos criados com o AppStudio to suportem recursos de acessibilidade, como texto para voz com modulação de voz. Este componente TextToSpeech pode ser utilizado para fornecer um comentário de áudio aos usuários finais, incluindo ajuda para usuários com deficiência visual e fornecendo informações quando o usuário não estiver olhando para o dispositivo. Para utilizar esta funcionalidade, primeiro você precisa incluir a seguinte declaração de importação:
import ArcGIS.AppFramework.Speech 1.0
Converter texto para voz
O núcleo do componente TextToSpeech é o método say , que converte o texto enviado em uma declaração falada. O seguinte exemplo de código demonstra isto em uso, lendo o conteúdo de uma área de texto quando um botão é clicado:
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);
}
}
}
Modificação de voz
A voz produzida pelo componente TextToSpeech pode ser controlada modificando as propriedades volume, pitch e rate do componente. Cada uma destas propriedades é armazenada como um inteiro de dupla precisão (um ponto decimal), sendo o valor padrão 50. O seguinte exemplo de código fornece um controle deslizante para a propriedade 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;
}
}