AppFramework fournit un plug-in QML Speech offrant une fonctionnalité de synthèse vocale qui permet aux applications créées avec AppStudio de prendre en charge les fonctionnalités d’accessibilité comme la synthèse vocale avec modulation de voix. Ce composant TextToSpeech peut être utilisé pour fournir un retour audio aux utilisateurs finaux, y compris de l’aide pour les utilisateurs malvoyants et fournir des informations lorsque l’utilisateur ne regarde pas son appareil. Pour utiliser cette fonctionnalité, vous devez tout d’abord inclure l’instruction d’import suivante :
import ArcGIS.AppFramework.Speech 1.0
Convertir le texte en paroles
L’élément central du composant TextToSpeech est la méthode say, qui convertit le texte soumis en une instruction orale. L’exemple de code suivant en fait la démonstration en utilisation, en lisant le contenu d’une zone de texte lorsque l’on clique sur un bouton :
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);
}
}
}
Modification de voix
La voix produite par le composant TextToSpeech peut être contrôlée en modifiant les propriétés volume, pitch, et rate du composant. Chacune de ces propriétés est stockée en tant qu’entier à double précision (un chiffre après la virgule), la valeur par défaut étant 50. L’exemple de code suivant fournit un curseur pour la propriété 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;
}
}
Vous avez un commentaire à formuler concernant cette rubrique ?