gpt4 book ai didi

java - 谷歌云语音暂停

转载 作者:行者123 更新时间:2023-11-30 00:22:06 26 4
gpt4 key购买 nike

我在使用 Google Cloud Speech 时遇到问题。我无法暂停 Google Cloud Speech,暂停识别我目前正在关闭 SpeechRecognizer,当我再次需要它时,我会重新启动它。但是这样,停止需要很多时间才能停止,我必须在后台线程中运行。有时它会及时停止,但并非总是如此。几天来,我在主线程上使用它,我没有遇到任何问题,但现在它开始跳帧,所以我移动了它。我需要它立即停止,因为在停止之后是语音到文本,如果我等到识别停止,即使我在后台线程上移动它,流程也会看起来很滞后。我正在使用他们示例中的代码来启动和停止它:

    private void stopVoiceRecorder() {
mNotifyForVoiceEnd.start();
if (mVoiceRecorder != null) {
mVoiceRecorder.stop();
}
isListening = false;
runOnUiThread(new Runnable() {
@Override
public void run() {
appBar.setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.primary));

}
});
}

开始识别:

 private void startVoiceRecorder() {
mNotifyForVoiceStart.start();
if (mVoiceRecorder != null) {
mVoiceRecorder.stop();
mVoiceRecorder = null;
}
mVoiceRecorder = new VoiceRecorder(mVoiceCallback);
mVoiceRecorder.start();
isListening = true;
runOnUiThread(new Runnable() {
@Override
public void run() {
appBar.setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.tab_not_hearing));
}
});
}

我使用了 TraceView 并且做了很多工作的问题是

mVoiceRecorder.stop();

和 .stop() 的代码

   public void stop() {
synchronized (mLock) {
if (mThread != null) {
mThread.interrupt();
mThread = null;
}

dismiss();
if (mAudioRecord != null) {
mAudioRecord.stop();
}

}
}

有什么办法可以暂停识别吗?

最佳答案

我找到了解决方案:

 // Simply delete   synchronized (mLock)

public void stop() {

if (mThread != null) {
mThread.interrupt();
mThread = null;
}

dismiss();
if (mAudioRecord != null) {
mAudioRecord.stop();
}

}

关于java - 谷歌云语音暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46090484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com