Vous pouvez communiquer avec vos utilisateurs à l'aide de la technologie de synthèse vocale (TTS, Text-to-Speech). La synthèse vocale est intégrée à Android (aucune bibliothèque supplémentaire n'est requise) et fonctionne même hors connexion. Ces caractéristiques font de la synthèse vocale une solution idéale pour gérer les conditions d'erreur en mode sans écran. Vous pouvez référencer les fonctionnalités de synthèse vocale à l'aide de la classe TextToSpeech.
Instancier TextToSpeech
Nous vous recommandons d'instancier la classe TextToSpeech dans la méthode onCreate() de l'activité de vos lunettes IA afin qu'elle soit disponible pendant toute la durée de vie de Activity :
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tts = TextToSpeech(this) { status ->
if(status == TextToSpeech.SUCCESS) {
// Initialization successful
}else {
// Initialization failed
}
}
...
}
Notifier l'utilisateur lorsque la synthèse vocale démarre
Pour les expériences sans écran (audio uniquement), informez l'utilisateur que votre application a bien été lancée en l'en avertissant dans la méthode onStart() :
override fun onStart() {
super.onStart()
tts?.speak("Welcome to Android XR Glasses!",
TextToSpeech.QUEUE_FLUSH,
null,
"welcome_utterance")
...
}
Points clés concernant le code
TextToSpeech.QUEUE_FLUSHindique que le texte doit être lu immédiatement et que toute autre énonciation de synthèse vocale doit être interrompue.- Le
utteranceId, dans ce cas"welcome_utterance", est utilisé pour identifier la fin de la lecture de ce texte. Pour en savoir plus, consultez laUtteranceProgressListener.
Interrompre la synthèse vocale
Si votre application doit interrompre la synthèse vocale, appelez la méthode stop() :
// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...
Nettoyer les ressources TTS
Vous devez nettoyer les ressources lorsque votre activité est détruite en appelant la méthode shutdown() dans la méthode onDestroy() de l'activité :
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}