Aller au contenu principal
Version: 0.0.5 (latest)

Text-to-Speech (Synthèse vocale)

Mini-Zoe peut parler à vos utilisateurs pour une expérience encore plus accessible et immersive.

Qu'est-ce que le Text-to-Speech ?

Le Text-to-Speech (TTS) ou synthèse vocale permet à Mini-Zoe de lire à voix haute les messages affichés. C'est une fonctionnalité essentielle pour :

  • 👁️ Les utilisateurs malvoyants ou aveugles
  • 🚗 Les utilisateurs en situation de conduite
  • 🏃 Les utilisateurs en mouvement
  • 📚 L'apprentissage multimodal

Installation

Pour utiliser le TTS, vous devez installer la dépendance react-native-tts :

npm install react-native-tts

iOS

Pour iOS, installez les pods natifs :

cd ios && pod install && cd ..

Android

Pour Android, la configuration est automatique après l'installation.

Configuration basique

Activez simplement la synthèse vocale avec la prop enableTextToSpeech :

import { MiniZoe } from '@blueshork/mini-zoe';

function App() {
return (
<View style={{ flex: 1 }}>
<MiniZoe
enabled={true}
enableTextToSpeech={true}
/>
</View>
);
}

C'est tout ! Mini-Zoe parlera maintenant à chaque fois qu'un message est affiché. 🎉

Langues disponibles

Mini-Zoe supporte plusieurs langues pour la synthèse vocale :

<MiniZoe
enableTextToSpeech={true}
ttsLanguage="fr-FR" // Français par défaut
/>

Langues supportées

CodeLangueExemple
fr-FRFrançais (France)"Bonjour !"
en-USAnglais (USA)"Hello!"
en-GBAnglais (UK)"Hello!"
es-ESEspagnol (Espagne)"¡Hola!"
de-DEAllemand"Hallo!"
it-ITItalien"Ciao!"

Exemple multilingue :

// Application en anglais
<MiniZoe
enableTextToSpeech={true}
ttsLanguage="en-US"
/>

// Dans votre code
VoiceRecognitionStore.show('Welcome to the app!');

Vitesse de parole

Ajustez la vitesse de lecture avec ttsRate :

<MiniZoe
enableTextToSpeech={true}
ttsRate={0.5} // Plus lent
/>

Valeurs recommandées

ValeurVitesseRecommandation
0.5Lent✅ Recommandé pour l'accessibilité
0.7Un peu lentBon compromis
1.0NormalVitesse standard
1.5RapidePour utilisateurs expérimentés
2.0Très rapidePeut être difficile à comprendre

Exemple :

// Pour une meilleure accessibilité
<MiniZoe
enableTextToSpeech={true}
ttsRate={0.5} // Lent et clair
/>

Tonalité de la voix

Modifiez la hauteur de la voix avec ttsPitch :

<MiniZoe
enableTextToSpeech={true}
ttsPitch={1.0} // Normal
/>

Valeurs recommandées

ValeurTonalitéUsage
0.5Très graveVoix masculine profonde
0.8GraveVoix masculine
1.0Normal✅ Recommandé (neutre)
1.2AiguVoix féminine
2.0Très aiguVoix enfantine

Exemple :

<MiniZoe
enableTextToSpeech={true}
ttsPitch={1.0} // Tonalité neutre
/>

Configuration complète

Voici un exemple de configuration TTS optimale pour l'accessibilité :

import { MiniZoe } from '@blueshork/mini-zoe';

function App() {
return (
<View style={{ flex: 1 }}>
<MiniZoe
enabled={true}

// Configuration TTS optimale
enableTextToSpeech={true}
ttsLanguage="fr-FR"
ttsRate={0.5} // Lent et clair
ttsPitch={1.0} // Tonalité neutre

// Laisser plus de temps pour écouter
autoHideDuration={4000}
/>
</View>
);
}

Exemples pratiques

Application multilingue

import React, { useState } from 'react';
import { MiniZoe } from '@blueshork/mini-zoe';

function App() {
const [language, setLanguage] = useState('fr-FR');

return (
<View style={{ flex: 1 }}>
{/* Sélecteur de langue */}
<LanguageSelector onSelect={setLanguage} />

{/* Mini-Zoe avec langue dynamique */}
<MiniZoe
enableTextToSpeech={true}
ttsLanguage={language}
/>
</View>
);
}

Paramètres utilisateur

import React from 'react';
import { MiniZoe } from '@blueshork/mini-zoe';
import { useSettings } from './hooks/useSettings';

function App() {
const { ttsEnabled, speechRate, voicePitch } = useSettings();

return (
<View style={{ flex: 1 }}>
<MiniZoe
enableTextToSpeech={ttsEnabled}
ttsRate={speechRate}
ttsPitch={voicePitch}
/>
</View>
);
}

Considérations importantes

Permissions

Sur certains appareils, l'utilisateur peut avoir besoin d'activer ou de télécharger des voix supplémentaires dans les paramètres système.

iOS : Réglages → Accessibilité → Contenu énoncé → Voix

Android : Paramètres → Accessibilité → Synthèse vocale

Performances

Le TTS peut consommer plus de batterie. Considérez :

  • Permettre aux utilisateurs de désactiver le TTS
  • Utiliser des messages courts
  • Ne pas abuser de show() en boucle

Messages clairs

Pour une meilleure expérience TTS :

// ✅ Bon
VoiceRecognitionStore.show('Bienvenue sur votre profil');

// ❌ À éviter
VoiceRecognitionStore.show('Welcome 2 ur profile!!!');

Test du TTS

Testez toujours votre TTS sur de vrais appareils :

import { VoiceRecognitionStore } from '@blueshork/mini-zoe';

// Bouton de test
function TestTTSButton() {
const testTTS = () => {
VoiceRecognitionStore.show('Test de la synthèse vocale');
};

return <Button title="Tester le TTS" onPress={testTTS} />;
}

Désactivation dynamique

Permettez aux utilisateurs de contrôler le TTS :

import React, { useState } from 'react';
import { MiniZoe } from '@blueshork/mini-zoe';
import { Switch, Text } from 'react-native';

function App() {
const [ttsEnabled, setTtsEnabled] = useState(true);

return (
<View style={{ flex: 1 }}>
{/* Contrôle utilisateur */}
<View>
<Text>Activer la voix</Text>
<Switch value={ttsEnabled} onValueChange={setTtsEnabled} />
</View>

{/* Mini-Zoe avec TTS contrôlable */}
<MiniZoe
enabled={true}
enableTextToSpeech={ttsEnabled}
/>
</View>
);
}

Prochaines étapes