enregistrer/enregistrer l'audio à partir de la reconnaissance de la voix de l'intention
Avant de poser cette question, j'ai vérifié tous les stackoverflow autres threads liés à ce problème, sans succès, de sorte s'il vous plaît, ne répondez pas avec des liens vers d'autres threads, 🙂
Je veux enregistrer/enregistrer l'audio que google le service de reconnaissance utilisé pour la conversion parole-texte de l'opération (à l'aide de RecognizerIntent ou SpeechRecognizer).
J'ai vécu beaucoup d'idées:
- onBufferReceived de RecognitionListener: je sais, ce n'est pas de travail, il suffit de tester pour voir ce qui se passe et onBufferReceived n'est jamais appelé (testé sur galaxy nexus avec JB 4.3)
- utilisé un media recorder: pas de travail. c'est la rupture de la reconnaissance vocale. une seule opération est autorisée mic
- essayé de trouver où le service de reconnaissance est l'enregistrement de la temporaire de fichier audio avant l'exécution de la conversion parole-texte de l'api de le copier, mais sans succès
J'étais presque désespéré, mais je viens de remarquer que Google Keep application est en train de faire ce que je dois faire!!!! Je debuged un peu le garder sur l'application à l'aide de logcat et l'application est également l'appel de la "RecognizerIntent.ACTION_RECOGNIZE_SPEECH" (comme nous, les développeurs, n') pour déclencher la parole en texte. mais, comment garder le sauvetage de l'audio? peut-il être un cacher de l'api? google est de la "triche" 🙂 ?
Merci pour votre aide
En ce qui concerne meilleur
- Double Possible de Android discours de reconnaissance et d'enregistrement audio en même temps
Vous devez vous connecter pour publier un commentaire.
@Kaarel la réponse est presque terminée - l'audio est en
intent.getData()
et peut être lu à l'aide deContentResolver
Malheureusement, le fichier AMR qui est renvoyée est de faible qualité, - je n'étais pas en mesure de trouver un moyen d'obtenir un enregistrement de haute qualité. Toute valeur, j'ai essayé d'autres que "audio/AMR" retourné null dans
intent.getData()
.Si vous trouvez un moyen d'obtenir un enregistrement de haute qualité - s'il vous plaît commentaire ou ajouter une réponse!
Dernière fois que j'ai vérifié, Google Garder ensemble de ces extras:
Ce ne sont pas documentés dans le cadre de l'Android de la documentation, de sorte qu'ils ne constituent pas une API Android. Aussi, Google Keep ne repose pas sur la reconnaissance de l'intention de tenir compte de ces extras. Il serait certainement bien si ces suppléments ont été popularisées et documenté par Google.
Pour savoir qui extras sont fixés par Google à le Conserver lorsqu'il appelle la
RecognizerIntent
, de mettre en œuvre une application qui répond à laRecognizerIntent
et d'imprimer tous les extras qu'il reçoit. Vous pouvez également installer Kõnele (http://kaljurand.github.io/K6nele/), qui est une implémentation deRecognizerIntent
. Lorsque Kõnele est lancé par Google Garder, puis appuyez longuement sur la clé-en forme de l'icône de paramètres. Cette montre quelques détails techniques à propos de l'appelant, et comprend également les entrants extras.La réponse par @Iftah explique comment Google Garder retourne l'enregistrement audio de l'appelant de
RecognizerIntent
.intent.getData()
pas dans legetExtras()
. Le résultat est une URL du contenu dont vous avez besoin pour ouvrir à l'aide deContentResolver
J'ai obtenu cette réponse d'ici, j'ai vérifié les dates et vu qu'il a été publié quelques jours après votre post, alors j'ai pensé que vous l'avez manqué.
Android discours de reconnaissance et d'enregistrement audio en même temps
un mec il dit: