Synthèse vocale sons et reconnaissance

Lire des sons :

Placez les sons dans le répertoire Raw (à créer via New -> Android Ressource File -> Raw)

Puis ajouter la déclaration avant OnCreate() :

private MediaPlayer mp;

Puis à l’endroit voulu :

String sSon="nom_du_fichier_son;
Resources res = getResources();
int resID = res.getIdentifier(sSon, "raw", getPackageName());
mp = MediaPlayer.create(getApplicationContext(), resID);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        mp.release();
    };
});

Pour gérer le multilinguisme créez une arborescence de réperoires Raw comme pour les Strings 

xxx

Traduire du texte en voix :

Utilisez le logiciel Balabolka et téléchargez les traductions des voix sur Windows (https://www.microsoft.com/en-us/download/details.aspx?id=27224)

Puis copiez collez ou ouvrir le fichier à « vocaliser » dans Balabolka

sound

Synthétiser la voix :
A tester INOVA le SDK https://www.ispeech.org/developer/home
https://www.ispeech.org/developers/android

synthesis.setVoiceType(« eurfrenchmale »); // usenglishmale cf. http://www.ispeech.org/api
synthesis.speak(ttsText);

http://www.truiton.com/2014/06/android-speech-recognition-without-dialog-custom-activity/

https://developer.android.com/reference/android/speech/SpeechRecognizer.html

https://github.com/manask88/wiki/wiki/Speech-Recognition-Tutorial—LightBulb-Example

https://www.tutorialspoint.com/android/android_text_to_speech.htm

http://www.apsideblog.fr/2015/01/05/instaurer-la-reconnaissance-vocale-au-sein-de-votre-application/

http://borntocode.fr/android-reconnaissance-vocale-et-synthese-vocale/

http://easy-android.over-blog.com/reconnaissance-vocale

Exemple de synthèse vocale :

 public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener {  
   public TextToSpeech mTTS;  
   EditText ed1;  
   Button b1;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     mTTS = new TextToSpeech(this, this);  
     setContentView(R.layout.activity_main);  
     ed1=(EditText)findViewById(R.id.editText);  
     b1=(Button)findViewById(R.id.button);  
     b1.setOnClickListener(new View.OnClickListener() {  
       @Override  
       public void onClick(View v) {  
         String toSpeak = ed1.getText().toString();  
         Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show();  
         mTTS.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null, null);  
       }  
     });  
   }  
   @Override  
   public void onInit(int i) {  
     mTTS.setLanguage(Locale.FRENCH);  
     mTTS.speak("Bonjour, dis moi quelque chose !", TextToSpeech.QUEUE_ADD, null, null);  
   }  
 }  

Le code source est ici

Reconnaissance vocale :

 public class MainActivity extends AppCompatActivity {  
   private TextView voiceInput;  
   private TextView speakButton;  
   private final int REQ_CODE_SPEECH_INPUT = 100;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     voiceInput = (TextView) findViewById(R.id.voiceInput);  
     speakButton = (TextView) findViewById(R.id.btnSpeak);  
     speakButton.setOnClickListener(new View.OnClickListener() {  
       @Override  
       public void onClick(View v) {  
         askSpeechInput();  
       }  
     });  
   }  
   // Showing google speech input dialog  
   private void askSpeechInput() {  
     Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);  
     intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,  
         RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);  
     intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());  
     intent.putExtra(RecognizerIntent.EXTRA_PROMPT,  
         "Hi speak something");  
     try {  
       startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);  
     } catch (ActivityNotFoundException a) {  
     }  
   }  
   // Receiving speech input  
   @Override  
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
     super.onActivityResult(requestCode, resultCode, data);  
     switch (requestCode) {  
       case REQ_CODE_SPEECH_INPUT: {  
         if (resultCode == RESULT_OK && null != data) {  
           ArrayList<String> result = data  
               .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);  
           voiceInput.setText(result.get(0));  
         }  
         break;  
       }  
     }  
   }  
 }  

Le code est

https://www.androidtutorialpoint.com/material-design/android-speech-text-tutorial/

https://www.sitepoint.com/using-android-text-to-speech-to-create-a-smart-assistant/

Android Speech Recognition Without Dialog In A Custom Activity

http://stackoverflow.com/questions/6316937/how-can-i-use-speech-recognition-without-the-annoying-dialog-in-android-phones

 

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories