Moduł AppFramework udostępnia wtyczkę Speech QML oferującą możliwość przekształcania tekstu na mowę pozwalającą aplikacjom utworzonymi za pomocą aplikacji AppStudio na obsługę funkcji dostępności, takich jak przekształcanie tekstu na mowę z modulacją głosu. Tego komponentu TextToSpeech można używać w celu dostarczenia użytkownikom końcowym głosowej informacji zwrotnej, w tym pomocy dla osób słabowidzących albo dla osób nie patrzących na urządzenie. Aby korzystać z tej funkcjonalności, należy najpierw dołączyć poniższą instrukcję importu:
import ArcGIS.AppFramework.Speech 1.0
Przekształcanie tekstu na mowę
Rdzeniem komponentu TextToSpeech jest metoda say przekształcająca przesłany tekst na mówioną instrukcję. Poniższy przykładowy kod demonstruje jego użycie, odczytując zawartość pola tekstowego po kliknięciu przycisku:
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);
}
}
}
Modyfikacja głosu
Głosem wygenerowanym przez komponent TextToSpeech można sterować, modyfikując właściwości volume, pitch i rate komponentu. Każda z tych właściwości jest przechowywana w postaci liczby całkowitej podwójnej precyzji (z jedną cyfrą po separatorze dziesiętnym) o wartości domyślnej równej 50. Poniższy przykładowy kod udostępnia suwak dla właściwości 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;
}
}