我有一个有2个按钮(开始,结束)的活动,当用户按下开始时,活动将触发一个服务,记录语音,并在用户按下结束按钮时保存它。为了确保用户知道他正在录制,我在活动UI上添加了一个文本视图,并希望服务类可以将其更改为类似于"it is recording...“的内容。服务的onStartCommand()和onDestory()上的“完成记录”。但是既然服务类不支持findviewbyId(),我该如何解决这个问题呢?
我创建了一个永久的notification,我的目标是这样
1)用户点击notification
2) Google Speech to Text activity启动并接收语音输入
3)将输入转换为文本,并开始一个新的活动,这表明了文本。
到目前为止,我尝试过的是--
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this)
.setSmallIcon(android.R.drawable.ic_dialog_alert)
完整的错误还包含:
android.app.RemoteServiceException: Bad notification for startForeground:
我读过其他类似的文章,尝试了他们的建议,并阅读了他们的链接,但仍有少数用户报告了这个错误。
概述
活动由外部应用程序启动。此活动启动自定义语音识别服务。It 不使用使用startForeground:
this.startService(intent);
然后,该活动调用finish();
服务启动自定义语音识别类,并在构造函数中将上下文传递给它。在“检测到语音开始”时,我显示以下通知:
String n
我不确定我能区分和理解以下几个方面的区别:
VAD (语音活动检测)和
Speaker Segmentation
我了解到:
VAD -分割语音段或非语音段的音频
扬声器分割-将音频分割成非语音片段和不同的扬声器
例如:
VAD = [not speech, speech, not speech, speech, not speech]
Speaker Segmentation = [not speech, speech , not speech, speech A, speech B, not speech]
我说得对吗?
我们创建了一个Android应用程序,它使用谷歌语音识别器,我们首先选择在程序中使用谷歌语音识别器。大多数设备工作正常,只有少数设备(MEIZU_M5、U78-E、阿波罗Lite等)。在例外情况下报告。好像和Mediatek的语音有冲突吗?我们发现还有一些Mediatek的设备正常工作。这很让人困惑。
java.lang.SecurityException: Not allowed to bind to service Intent { act=android.speech.RecognitionService cmp=com.mediatek.voicecommand/.service.Vo
嘿,我有一个函数,它先说话,然后接受输入,然后再试着用这个输入说话。现在的问题是,它做了所有的发言,而不是等待输入
public void fun(){
speakOut("what is your name");
startActivityForResult(intent, 2);
speakout("how old are you");
}
我的程序有点像上面的例子。当我运行它时,它只问第二个问题,然后运行活动(在我的例子中是一个语音RECOGNIZE_SPEECH意图。所以我想要的是让代码等待活动完成后再继续。还是我搞错了什么?
编辑:
好吧