Ich kämpfe mit Transkription zu bekommen, um auf meiner Android-Anwendung mit IBM Sprache zu Text-Service zu arbeiten. Im Folgenden finden Sie den Code zum Aufzeichnen der Dateien und zum Transkribieren der Dateien.Rede zur Texttranskription Frage mit ibm watson
Beispielcode Ich habe watson von github link
Medienrecorder Ausgänge
mediaRecorder = new MediaRecorder();
mediaRecorder.setMaxDuration(MAX_DURATION);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
die Datei klare Audio muss, wenn ich es hören.
Watson Code
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));
}
bekam ich den Benutzernamen, das Passwort und die URL von meinem Bluemix Konto.
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();
}
Ich wählte Audio_OGG weil Dokumentation sagt: Audio/ogg (Der Dienst erkennt automatisch den Codec des Eingangsaudio.)
Dies könnte falsch sein, so wenn ja bitte erklären, warum denn die Beispiele, die ich gefunden habe war nicht so viel Hilfe.
Wiedergabe Klasse
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");
}
}
die Wiedergabe-Klasse eine Klasse in meiner Aktivitätsklasse ist
public class RecordingActivity extends AppCompatActivity implements
RecordingListFragment.OnFragmentInteractionListener {
"on create and etc code"
"start watson function"
"transcribe function"
playback class {}
}
ich die Klasse nahm und die Faden Codeform des Beispiel, das ich mit Watson Rede auf Github gefunden in Text .
Hallo Nathan, Danke für den Tipp. Ich habe auch eines meiner Probleme herausgefunden. Start watson muss getApplicationContext() sein. GetResources(). GetString (R.string.speech_text_username); – lostknight