11
votes

Texte android à la voix de la parole masculine

J'ai un texte de travail à la parole, mais je me demandais au lieu d'une voix féminine lorsque l'application l'appelle à être jouée, elle fera une voix masculine à la place?


1 commentaires

renvoyer ma réponse Ça fonctionne pour moi.Je peut mettre la voix pour mâle. Stackoverflow.com/Questtions/36681232/Android-TTS-MAle-v Course / ...


7 Réponses :


2
votes

Cela dépend du moteur TTS sous-jacent. Certains sont configurables et ont différentes voix (hommes, femmes, etc.), certains ont une seule voix. Dans tous les cas, vous ne pouvez pas contrôler cela à partir de votre application, l'utilisateur doit modifier les paramètres du moteur TTS de l'application Paramètres. Vous ne pouviez que les instruire d'installer un moteur en particulier et de configurer votre application pour l'utiliser.


0 commentaires


1
votes

Il est possible de changer la voix en homme. Définir dans oncreate () : tts.setenginebyname ("com.google.android.tts") et faites le service Google TTS par défaut dans des paramètres de parole et installer le mâle Voix dans Google TTS Service.

Comme cela, vous pouvez utiliser des services TTS TTS tiers Android et vérifier le périphérique. Ou demander à installer.


0 commentaires

14
votes

Il est maintenant possible d'utiliser la voix masculine / féminine et de le modifier de l'application UI de manière dynamique. Définissez TTS comme celui-ci (ajoutez Google TTS Moteur dans Constructor): XXX

Contex = Activité / App

this = textostStoStoSech.InInitlistener

de tts.gevoices () liste, choisissez votre voix souhaitée par son nom comme ceci: xxx

nb: u Besoin de définir _voicename en obtenant le nom de voix codé dur à partir de tts.gevoices () . E.g: Pour l'anglais, il serait: "EN-US-X-SFG # MALE_1-LOCAL"


1 commentaires

Son changement du nom de la voix à chaque fois, j'ai utilisé pour Hindi Homme La valeur était la voix [Nom: Hi-in-X-Cfn # Male_3-local, locale: hi_in, qualité: 400, latence: 200], maintenant pour Hi-in sa voix montrant [Nom: hi-in-x-hia-local, locale: hi_in, qualité: 400,], précédemment son travail maintenant sa création de problème



0
votes

de toute façon, vous pouvez définir votre ligne de discours Android sur Google TTS Service par:

  1. tts = nouveau textelleecech (contexte, ceci, "com.google.android.tts") ou
  2. Installez une nouvelle voix masculine (anglais) et définissez-la par défaut dans Android.

    espère que cela aide.


0 commentaires

6
votes

Il est possible de changer la voix en homme fort>

Voici mon code, espérons que cela vous aidera! p>

private void speakOut(String message) {

    t1.speak(message, TextToSpeech.QUEUE_FLUSH, null);
}


2 commentaires

Mais lorsque nous définissons les paramètres régionaux comme si (Status == textcepecec.success) {SET A = NOUVEAU HASHSET <> (); A.Ajouter ("mâle"); Voix v = nouvelle voix ("hi-in-x-sfg # mâle_2-local", nouveau local ("hi", "in"), 400 200, vrai, a); tts.setvoice (v); Int résultat = tts.sevoice (v); tts.setspeechreate (0.8F); --------------- >>>> Cela donne une voix féminine pourquoi? Où je manque?


Sa modification des valeurs de manière dynamique non fixée pour les hommes ----> E ("Hi-in-X-SFG # mâle_2-local", nouveau local ("hi", "in"), 400 200, Vrai, A)



0
votes

Contrairement à certaines réponses précédentes, le sexe est pas un paramètre (ou même une "caractéristique") d'un Voix objet.

Comme vous pouvez le voir ... à partir du 5/2021, il n'y a pas de paramètre booléen "ismale".

est a "Caractéristiques" Set Paramètre, mais ce que ces chaînes contiennent réellement sont dépendantes du moteur et extrêmement mal documentées et / ou implémentées ... et aucun moteurs décrit le genre à l'aide de ce paramètre que je connais de.

textelleecec.setvoice () est conçu de telle sorte que l'ensemble de la voix doit être une correspondance exacte / une instance de l'un des objets vocaux précédemment renvoyés par TextToStoStSp.gevoices () - Ce n'est pas un moyen de Créez / demandez une nouvelle voix personnalisée ou de tenter de mélanger et de faire correspondre les paramètres. (qui ne veut pas dire que certains moteurs ne vont pas essayer de faire une meilleure approximation de la nouvelle voix inexistante que vous essayez de l'envoyer ).

Même si le genre a été mis en œuvre, les paramètres vocaux ne sont pas conçus pour être réglés de manière indépendante.

Les objets vocaux sont un moyen par lequel un moteur peut décrire ses voix disponibles à l'aide de getvoiices () - ce ne sont pas les voix elles-mêmes.

Autant que je puisse dire, le constructeur de la classe vocale n'est vraiment pas utile à personne d'autre qu'un développeur de moteurs vocaux.

Tout cela signifie que, à moins que les auteurs d'un moteur spécifique n'aient choisi d'inclure "homme" ou "femme" comme une sous-chaîne du nom de la voix, il n'ya aucun moyen de déterminer si une voix sonne si une voix ou une autre que d'écouter en premier.

Ainsi, afin de contrôler si la sortie de la parole "est" masculine / femme, tout ce qui suit devrait être vrai:

  1. Vous connaissez déjà le nom de la voix unique (chaîne) que vous recherchez
  2. Le moteur contenant cette voix est installé sur le périphérique des utilisateurs (pas dans votre contrôle)
  3. La version installée de ce moteur est suffisamment récente pour contenir cette voix (pas dans votre contrôle)
  4. La version installée de ce moteur n'est pas trop récente afin de ne plus contenir cette voix (pas dans votre contrôle)
  5. L'utilisateur a cette voix particulière installée (pas dans votre contrôle)
  6. Si la voix n'est pas installée, l'utilisateur est connecté à Internet (pas dans votre contrôle)

    PS - Même si vous pensez que vous avez trouvé une voix masculine, cela pourrait réellement être une femme qui vous semble-t-elle un homme. :)

    PPS - Vous pouvez utiliser un service cloud à la place pour supprimer tout le périphérique imprévisibilité.


0 commentaires