IBMの音声対話を使用して、自分のアンドロイド・アプリケーションで動作するように転写に苦労しています。以下は、ファイルを記録し、ファイルを転記するためのコードです。ibm watsonによるテキストの文字化けの問題
のコード例Iは、ファイルが、私はそれに耳を傾けたときにクリアな音声を持っていgithub link
メディアレコーダー出力から
mediaRecorder = new MediaRecorder();
mediaRecorder.setMaxDuration(MAX_DURATION);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
をワトソンを取りました。
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));
}
ワトソンコードは、私は私のbluemixアカウントからユーザー名、パスワードおよびURLを得ました。
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();
}
ドキュメントが言うので、私はAudio_OGGを選択しました:(。サービスが自動的に入力された音声のコーデックを検出)オーディオ/ OGGを
例は、私が発見したので、その理由を説明してくださいので、もしこれが間違っている可能性がそれほど助けにはならなかった。
再生クラスは、私はクラスとスレッドコードフォームIをテキストにワトソンのスピーチでgithubの上で見つかった例を取っ
public class RecordingActivity extends AppCompatActivity implements
RecordingListFragment.OnFragmentInteractionListener {
"on create and etc code"
"start watson function"
"transcribe function"
playback class {}
}
私の活動のクラスの内部クラスがある
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");
}
}
再生クラス。
こんにちはネイサンでいくつかの作業例もありますが、先端をありがとうございました。私はまた私の問題の1つを見つけました。 watsonを開始するには、getApplicationContext()。getResources()。getString(R.string.speech_text_username);が必要です。 – lostknight