Apakah ini mungkin tanpa mengubah API android? Saya telah menemukan artikel tentang ini. Ada satu komentar yang harus saya lakukan modifikasi pada API android. Tetapi tidak disebutkan bagaimana cara melakukan modifikasi. Adakah yang bisa memberi saya beberapa saran tentang bagaimana melakukan itu? Terima kasih!
Saya telah menemukan artikel ini; SpeechRecognizer Kebutuhannya hampir sama dengan kebutuhan saya. Ini adalah referensi yang bagus untuk saya!
Saya benar-benar punya masalah ini terpecahkan.
Saya mencari di Google kode contoh yang dapat digunakan dari situs web China ini.
Ini kode sumber saya
package voice.recognition.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.speech.RecognitionListener;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
import android.util.Log;
public class voiceRecognitionTest extends Activity implements OnClickListener
{
private TextView mText;
private SpeechRecognizer sr;
private static final String TAG = "MyStt3Activity";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button speakButton = (Button) findViewById(R.id.btn_speak);
mText = (TextView) findViewById(R.id.textView1);
speakButton.setOnClickListener(this);
sr = SpeechRecognizer.createSpeechRecognizer(this);
sr.setRecognitionListener(new listener());
}
class listener implements RecognitionListener
{
public void onReadyForSpeech(Bundle params)
{
Log.d(TAG, "onReadyForSpeech");
}
public void onBeginningOfSpeech()
{
Log.d(TAG, "onBeginningOfSpeech");
}
public void onRmsChanged(float rmsdB)
{
Log.d(TAG, "onRmsChanged");
}
public void onBufferReceived(byte[] buffer)
{
Log.d(TAG, "onBufferReceived");
}
public void onEndOfSpeech()
{
Log.d(TAG, "onEndofSpeech");
}
public void onError(int error)
{
Log.d(TAG, "error " + error);
mText.setText("error " + error);
}
public void onResults(Bundle results)
{
String str = new String();
Log.d(TAG, "onResults " + results);
ArrayList data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
for (int i = 0; i < data.size(); i++)
{
Log.d(TAG, "result " + data.get(i));
str += data.get(i);
}
mText.setText("results: "+String.valueOf(data.size()));
}
public void onPartialResults(Bundle partialResults)
{
Log.d(TAG, "onPartialResults");
}
public void onEvent(int eventType, Bundle params)
{
Log.d(TAG, "onEvent " + eventType);
}
}
public void onClick(View v) {
if (v.getId() == R.id.btn_speak)
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test");
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5);
sr.startListening(intent);
Log.i("111111","11111111");
}
}
}
Pastikan untuk menghapus Log yang mengganggu setelah debugging!
android
speech-recognition
speech
Jim31837
sumber
sumber
<uses-permission android:name="android.permission.RECORD_AUDIO" />
file AndroidManifest.xml Anda jika tidak SpeechRecognizer tidak akan mengambil audio apa punJawaban:
Gunakan antarmuka SpeechRecognizer . Aplikasi Anda harus memiliki izin RECORD_AUDIO, lalu Anda dapat membuat SpeechRecognizer, memberinya RecognitionListener , lalu memanggil
startListening
metodenya. Anda akan mendapatkan panggilan balik ke pendengar saat pengenal ucapan siap untuk mulai mendengarkan ucapan dan saat alat tersebut menerima ucapan dan mengubahnya menjadi teks.sumber
has leaked ServiceConnection android.speech.SpeechRecognizer$Connection@414f0e40 that was originally bound here
kesalahanGAST memiliki kelas abstrak praktis yang dapat Anda gunakan untuk menggunakan
SpeechRecognizer
kelas dengan kode baru yang sangat sedikit. Ada juga contoh menjalankan layananSpeechRecognizer
sebagai latar belakang menggunakan ini dan inisumber
Terima kasih telah memposting ini! Saya merasa terbantu untuk mendefinisikan pendengar onclick di oncreate:
sumber
Saya akhirnya membuat proyek Github untuk mengonversi Teks ke ucapan dan ucapan ke teks tanpa dialog yang mengganggu,
https://github.com/hiteshsahu/Android-TTS-STT/tree/master/app/src/main/java/com/hiteshsahu/stt_tts/translation_engine
sumber