Aller au contenu


Faite parler votre Android Phone dans vos applications


11 réponses à ce sujet

#1 guytouch

    Member

  • Administrateurs
  • 22 messages

Posté 18 juin 2010 - 01:33

Maintenant que nous avons passé la barre de 50% d'Android Phone sous Android 2.1, je pense que je peux commencer à faire des tutos avec le SDK 2.1.

Dans ce Tuto je vais faire parler mon Android Phone avec une liste aléatoire de phrases et de mots grâce à la synthèse vocale.

Je crée mon fichier de ma fenêtre avec juste un bouton pour lancer mon action.

    

Dans ma classe j'implémente l'objet TextToSpeech, qui permet de lancer la synthèse vocale


public class CommandeVocal extends Activity implements TextToSpeech.OnInitListener {
private static final String TAG = "TextToSpeechDemo";
//creation de objet TextToSpeech
private TextToSpeech mTts;

private Button mAgainButton;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.layout_xml);
//instanciation de l'objet  mTts
mTts = new TextToSpeech(this,this );

// The button is disabled in the layout.

// It will be enabled upon initialization of the TTS engine.

mAgainButton = (Button) findViewById(R.id.again_button);

mAgainButton.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

ParleandroidPhone ();

}

});

}


Je crée mon tableau  de phrases aléatoire

private static final Random RANDOM = new Random();

private static final String[] HELLOS = {

"Bonjour",

"Comment tu vas",

"Perpignan ",

"J'aime Android France"

};


Une methode importante dans notre classe c'est la méthode onInit qui permet de configurer la langue de notre synthèse vocale.

// Implements TextToSpeech.OnInitListener.

public void onInit(int status) {

// vérification de la disponibilité  de la synthèse vocale.

if (status == TextToSpeech.SUCCESS) {

//le choix de la langue ici français

int result = mTts.setLanguage(Locale.FRANCE);

// vérification ici si cette langue est supporté par le terminal et si elle existe

if (result == TextToSpeech.LANG_MISSING_DATA ||

result == TextToSpeech.LANG_NOT_SUPPORTED) {

//renvoi une erreur sur la console logcat.

Log.e(TAG, "Language is not available.");

} else {

mAgainButton.setEnabled(true);

ParleandroidPhone ();

}

} else {

// si la synthèse vocal n'est pas disponible

Log.e(TAG, "Could not initialize TextToSpeech.");

}


Puis ma Methode ParleandroidPhone qui lance aléatoirement une phrase


private void ParleandroidPhone () {

// choix aléatoire de la phrase.

int helloLength = HELLOS.length;

String hello = HELLOS[RANDOM.nextInt(helloLength)];

mTts.speak(hello, TextToSpeech.QUEUE_FLUSH,  null);

}



#2 Biana

    Je suis un homme

  • Membres
  • 983 messages

Posté 18 juin 2010 - 11:06

guytouch dit :

Maintenant que nous avons passé la barre de 50% d'Android Phone sous Android 2.1, je pense que je peux commencer à faire des tutos avec le SDK 2.1.
Un petit ajout à faire je pense. :p
Posted Image

#3 raquel0202

    Modérateur

  • Administrateurs
  • 217 messages
  • LocationIbérie

Posté 19 juin 2010 - 11:06

(y'en a qui comprennent quand Guy parle ?)
(ça à l'air génial hein... mais j'ai vraiment RIEN compris :P)
Je dors peu, alors j'essaie de dormir vite.

#4 Biana

    Je suis un homme

  • Membres
  • 983 messages

Posté 20 juin 2010 - 11:39

Après quelques bases, comme pour tout, c'est accessible au plus grand nombre la prog. L'expérience et la curiosité font le reste du travail. ^^

Tentée Raquel ? :p
Posted Image

#5 raquel0202

    Modérateur

  • Administrateurs
  • 217 messages
  • LocationIbérie

Posté 20 juin 2010 - 04:31

Biana dit :

Tentée Raquel ? :p

euh.... oui :P
mais j'sais pas par ou commencer !
Je dors peu, alors j'essaie de dormir vite.

#6 Biana

    Je suis un homme

  • Membres
  • 983 messages

Posté 20 juin 2010 - 10:54

Tentée par suivre les tutos, ou commencer la programmation ?

Dans le premier cas, c'est ici ! Dans le deuxième, quelques bonnes adresses peuvent être données, comme ici.

Et si tu veux approfondir pour la suite, ou même pour continuer à découvrir la programmation Android, cette fois-ci (car il n'y explique pas les bases de la programmation pure dedans), le livre "Programmation Android : de la conception au déploiement avec le SDK", que je suis en train de finir, t'en expliquera parfaitement les rouages. ^^

Dans tous les cas, quelques conseils pourront aussi t'être prodigués, comme bien utiliser les connaissances que tu as sous la main (livre ou web) ou découper ce que tu souhaites faire pour pas de noyer dedans. Courage ! ;)
Posted Image

#7 guytouch

    Member

  • Administrateurs
  • 22 messages

Posté 21 juin 2010 - 09:16

@raquel0202 serieux rachel tu veux te mettre à la programmation android? cool je prend de la doc avec moi pour les vacances en espagne en aout

#8 LordK

    Froyo

  • Membres
  • 1 574 messages
  • LocationParis

Posté 21 juin 2010 - 10:04

Ahah y'en a une qui regrette d'un coup :lol:
Parler rarement est conforme à la nature - http://www.philosogeek.com - Follow Me @LordKrlhz

#9 raquel0202

    Modérateur

  • Administrateurs
  • 217 messages
  • LocationIbérie

Posté 28 juin 2010 - 11:55

Biana, merci ! je vais étudier tout ça, et je reviens pour plein de questions donc :D


guytouch dit :

@raquel0202 serieux rachel tu veux te mettre à la programmation android? cool je prend de la doc avec moi pour les vacances en espagne en aout

ouais, amène donc ça, et plein d'euros que je te plume au poker :P

LordK : nan, même pas peur !!! :P
Je dors peu, alors j'essaie de dormir vite.

#10 nano29

    500

  • Membres
  • 2 messages

Posté 07 juillet 2010 - 02:52

Salut,

Est-ce que cette application est capable de lire des chiffres ? Exemple : 12 et 34,56 (trente quatre virgule cinquante six)
Sait-elle interpréter la ponctuation ? Exemple : Où habites-tu ? Paris ! (Ici Paris, est la réponse à la question, et non, le nom de la personne a qui l'on s'adresse).

Je pose ces questions, dans le but de pouvoir lui faire dire des relevés transmis par le gps interne.

Bonne journée
A bientôt

#11 guytouch

    Member

  • Administrateurs
  • 22 messages

Posté 07 juillet 2010 - 03:03

@nano29 il faut juste que tu rajoutes ces chaines de caractère dans le tableau Hello du programme et tu verra comment ton téléphone les interprètes

#12 nano29

    500

  • Membres
  • 2 messages

Posté 07 juillet 2010 - 03:37

Je viens de faire quelques tests :
"12", ->Ok
"34,56", "1000.8", "2 .3", "2 ,3", ->Ok, la lecture correspond à un chiffre flottant, on prononce le mot "virgule" ou "point"
"22 . 7", "22 , 7", "1. 4", "1, 4", ->Ok, ce N'est PAS un chiffre flottant, il dit les deux chiffres séparément sans dire "point", ni "virgule"
"On est à 45° Nord", ->Ok, le symbole "degré" est décrypté et prononcé
"Où habites-tu ? Paris !" -> le point d'interrogation correspond à une "respiration humaine" : on ne dit pas "point d'interrogation" mais, on n'enchaine pas tous les mots non plus.

Test concluant pour l'instant ;) Affaire à suivre donc :!:





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)