Okly in Jelly Bean SpeecRecognizer发出哔哔声......我希望在旧版本中有相同的声音(或我选择的声音)。
我现在这样做
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion < android.os.Build.VERSION_CODES.JELLY_BEAN){
//prepare beep
beep.start();
}
//prepare intent
sr.startListening(intent);
但是在哔哔声和聆听之间仍有时间......在SpeechRecognizer监听器中,如果低于jb,我需要发出这个哔声?
我想告诉我,我不想在录音时播放哔声,因为这会让我的识别变得混乱!
如果有人能找到我的哔哔声,JB会很棒:)
答案 0 :(得分:0)
您可以将它放在onReadyForSpeech(如果您实现RecogntionListener)
public class MySpeechRecognizer implements RecognitionListener {
public void initialize()
{
//... other SpeechRecognizer initialization
mSpeechRecognizer.setRecognitionListener(this);
}
@Override
public void onReadyForSpeech(Bundle params) {
final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
}
//... other required methods of RecognitionListener
}
唯一的问题是,蜂鸣声会导致识别开始,因此如果在onError中出现错误7(无结果),则需要重新启动识别。
或者,我已经选择了振动解决方案(除了使用蓝牙耳机时),而不是发出哔哔声,因为语音识别无法检测到振动。
@Override
public void onReadyForSpeech(Bundle params) {
Log.d("SpeechRecognizer", "Ready");
if (beepOnReady && !hasBeeped) {
Log.d("SpeechRecognizer", "Beeping");
hasBeeped = true;
if (beepOnBluetooth) {
final ToneGenerator tg = new ToneGenerator(6, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
}
else
{
Vibrator vibe = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE) ;
vibe.vibrate(50);
}
}