Je suis aux prises avec le fait que la transcription fonctionne sur mon application androïde en utilisant le service de messagerie vocale IBM. Voici le code pour enregistrer les fichiers et transcrire les fichiers.problème de transcription de texte à texte avec ibm watson
code exemple, je pris watson de github link
sorties de l'enregistreur multimédia
mediaRecorder = new MediaRecorder();
mediaRecorder.setMaxDuration(MAX_DURATION);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
le fichier ne dispose audio clair quand je l'écoute.
Code Watson
private void startWatson() {
service = new SpeechToText();
String userName = String.valueOf(R.string.speech_text_username);
String password = String.valueOf(R.string.speech_text_password);
service.setUsernameAndPassword(userName, password);
service.setEndPoint(String.valueOf(R.string.speech_text_url));
}
J'ai obtenu le nom d'utilisateur, mot de passe et URL de mon compte bluemix.
private void transcribe() throws IOException {
final InputStream inputStream = FileUtils.openInputStream(files[spnRecordingList.getSelectedItemPosition()]);
recognizeOptions = new RecognizeOptions.Builder().contentType(HttpMediaType.AUDIO_OGG).interimResults(true).build();
new Thread(new Runnable() {
@Override
public void run() {
try {
service.recognizeUsingWebSocket(inputStream, recognizeOptions, new playback());
} catch (Exception e) {
}
}
}).start();
}
J'ai choisi Audio_OGG parce que la documentation dit: audio/ogg (Le service détecte automatiquement le codec de l'audio d'entrée.)
Cela pourrait se tromper si donc s'il vous plaît expliquer pourquoi parce que les exemples que j'ai trouvé Je n'ai pas beaucoup aidé.
classe de lecture
private class playback extends BaseRecognizeCallback {
@Override
public void onTranscription(SpeechResults speechResults) {
if (speechResults.getResults() != null && !speechResults.getResults().isEmpty()) {
String text = speechResults.getResults().get(0).getAlternatives().get(0).getTranscript();
txtbox.setText(text);
}
}
@Override
public void onError(Exception e) {
txtbox.setText("on error");
}
@Override
public void onDisconnected() {
txtbox.setText("on disconnected");
}
}
la classe de lecture est une classe dans ma classe d'activité
public class RecordingActivity extends AppCompatActivity implements
RecordingListFragment.OnFragmentInteractionListener {
"on create and etc code"
"start watson function"
"transcribe function"
playback class {}
}
Je pris la classe et la forme de code fil l'exemple que je trouve sur github avec la parole Watson au texte .
Salut Nathan, Je vous remercie de la pointe. J'ai également découvert l'un de mes problèmes. Démarrer watson doit être getApplicationContext(). GetResources(). GetString (R.string.speech_text_username); – lostknight