French Saisie vocale

sultan87

Active Member
Licensed User
Longtime User
Bonjour
je désire dans une application saisir un montant de façon vocale
est ce possible
si oui comment faire
cordialement
pierre
 

drgottjr

Expert
Licensed User
Longtime User
voici un example tres clair et simple:
https://www.b4x.com/android/forum/threads/voice-recognition-with-resumable-subs.82869/

tappez l'ecran
on vous demande de dire quelque chose (un montant, peut-etre)
un petit genie le capte et le repete (en texte)
fin

seul accroc: la langue du locuteur. c'est-a-dire, dans mon cas, si je dis quelqhe choise en anglais ou espagnol, le genie me comprend. en revanche, si je m'exprime en francais, une espece d'anglais tordu en resulte. mon espagnol est meilleur que mon francais, je l'admet, mais meme les mots les plus simples sortaient en anglais.

bégaiements et zézaiements - n'en parlons pas.
 

sultan87

Active Member
Licensed User
Longtime User
voici un example tres clair et simple:
https://www.b4x.com/android/forum/threads/voice-recognition-with-resumable-subs.82869/

tappez l'ecran
on vous demande de dire quelque chose (un montant, peut-etre)
un petit genie le capte et le repete (en texte)
fin

seul accroc: la langue du locuteur. c'est-a-dire, dans mon cas, si je dis quelqhe choise en anglais ou espagnol, le genie me comprend. en revanche, si je m'exprime en francais, une espece d'anglais tordu en resulte. mon espagnol est meilleur que mon francais, je l'admet, mais meme les mots les plus simples sortaient en anglais.

bégaiements et zézaiements - n'en parlons pas.
Bonsoir
merci je vais regarder cela et je reviens vers vous
Pierre
 

sultan87

Active Member
Licensed User
Longtime User
Bonsoir
je viens de tester et j'ai ce message
Bloqué par Play Protect
cette application a été conçue pour une version plus ancienne d'android et n'inclut pas les derniers dispositifs de protection de la vie privée
Application non installée
que faire
Pierre
 

sultan87

Active Member
Licensed User
Longtime User
Bonsoir
je viens de tester et j'ai ce message
Bloqué par Play Protect
cette application a été conçue pour une version plus ancienne d'android et n'inclut pas les derniers dispositifs de protection de la vie privée
Application non installée
que faire
Pierre
j'ai trouvé
j'ai corrigé le manifest il y avait
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="19"/>
j'ai mis
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="30"/>
je continue les tests
bonne soirée
Pierre
 

klaus

Expert
Licensed User
Longtime User
J'ai testé le programme VoiceRecognition et il fonctionne bien en français.
D'ailleurs, la langue est affichée sur l'écran lors de la demande de dire quelque chose.
On peut modifier la linge avec:
vr.Language = "it"
Pour Italien dans l'exemple et ça fonctionne.
 

sultan87

Active Member
Licensed User
Longtime User
J'ai testé le programme VoiceRecognition et il fonctionne bien en français.
D'ailleurs, la langue est affichée sur l'écran lors de la demande de dire quelque chose.
On peut modifier la linge avec:
vr.Language = "it"
Pour Italien dans l'exemple et ça fonctionne.
Bonjour merci à tous
j'avance dans mon projet
je saisie des montant
 

sultan87

Active Member
Licensed User
Longtime User
Bonjour
je voudrais après avoir dit le montant, demander par voie vocale si on valide et répondre par oui pour par non
je ne vois pas comment faire
est ce quelqu'un a une idée
merci d'avancePierre
 

sultan87

Active Member
Licensed User
Longtime User
je me réponds
j'ai trouve ce lien
je vais l'exploiter et revenir vers vous
Pierre
 

sultan87

Active Member
Licensed User
Longtime User
Bonsoir
j'ai fait des tests d'utilisation de VoiceRecognition et TTS
j'utilise la fonction Sleep pour attendre la fin de TTS1.Speak
y a t'il une meilleur solution car l'attente dépend de la longueur du texte dans TTS1.Speak
Cordialement
Pierre
 

Attachments

  • LamieCaline.zip
    482.6 KB · Views: 88

Serge Bertet

Active Member
Licensed User
Un lien qui pourrait t'aider je pense :
 

klaus

Expert
Licensed User
Longtime User
Merci !
J'ai aussi trouvé cette fonction, pas dans le forum mais sur internet, j'ai dû mal chercher dans le forum.
Depuis ce matin je fais des tests dans le projet de Pierre et ça fonctionne !
J'ai défini une routine:
B4X:
Private Sub Parles(Texte As String)
    jTTS = TTS1    'après multiples essais sans cette déclaration ça ne fonctionnait pas, en redéclarant jTTS ça fonctionne!
    TTS1.Speak(Texte, True)
    Do While jTTS.RunMethod("isSpeaking", Null) = True
    Loop
End Sub

Dès que j'aurais fini d'autres test je posterais le projet modifié.
 
Last edited:

sultan87

Active Member
Licensed User
Longtime User
merci à vous tous et plus particulièrement à Klaus
comment déclaré jTTS
Pierre
 

klaus

Expert
Licensed User
Longtime User
Dans Sub Process_Globals.

Ci-joint la version actuelle de ton projet.
Tu verras, je me suis un peu amusé.
Il y a encore un problème que je ne comprends pas.
La nécessité de devoir ajouter un Sleep() après:
B4X:
    Wait For (RecognizeVoice) Complete (Result As String)
    If Result <> "" Then
        Sleep(2000)
Avec Sleep(500) ça fonctionne encore, mais avec une valeur plus petite le prochain appel à TTS1 provoque une erreur.
Alors qu'avec le Wait For, du moins pour moi, on ne devrait pas avoir besoin d'un Sleep.
J'ai pas mal cherché mais pas encore trouvé la raison.
Je vais encore chercher sans beaucoup d'espoir.
 

Attachments

  • La Mie Caline_1.zip
    62 KB · Views: 76

Serge Bertet

Active Member
Licensed User
Tu devrais modifier :
B4X:
Sub Activity_Pause (UserClosed As Boolean)
    If UserClosed Then
        TTS1.Release
    End If
End Sub
je comprenais pas pourquoi j'avais TTS1_Ready à chaque VoiceRecognition. En fait vr mets l'activité en pause et donc TT1 est réinitialisé à chaque fois. Sauf si c'est voulu bien sûr...
 
Top