Android 同时录制音频并转换为文本
我开发了一个应用程序,可以记录特定时间段的音频,另一个应用程序使用web将语音转换为文本。Android 同时录制音频并转换为文本,android,speech-to-text,Android,Speech To Text,我开发了一个应用程序,可以记录特定时间段的音频,另一个应用程序使用web将语音转换为文本。 这两件事有可能同时进行吗?我的意思是录制音频并将录制的音频文件中的语音转换为文本?您这样做的方式可能不太准确,因为对语音输入有许多不同的建议。但你可以尝试一下。 据我所知,您应该在后台运行音频服务并启动语音检测。 对于后台服务,就是如何使用它们。您也可以看到完整的应用程序。 有关语音识别,您可以参考 这就是创建服务的方式。 最好将媒体代码投入使用。这是在后台播放媒体的最佳方式 public class s
这两件事有可能同时进行吗?我的意思是录制音频并将录制的音频文件中的语音转换为文本?您这样做的方式可能不太准确,因为对语音输入有许多不同的建议。但你可以尝试一下。
据我所知,您应该在后台运行音频服务并启动语音检测。
对于后台服务,就是如何使用它们。您也可以看到完整的应用程序。
有关语音识别,您可以参考 这就是创建服务的方式。
最好将媒体代码投入使用。这是在后台播放媒体的最佳方式
public class serv extends Service{
MediaPlayer mp;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public void onCreate()
{
mp = MediaPlayer.create(this, R.raw.b);
mp.setLooping(false);
}
public void onDestroy()
{
mp.stop();
}
public void onStart(Intent intent,int startid){
Log.d(tag, "On start");
mp.start();
}
}
其中原始文件夹是在资源中创建的。R.raw.b是一个mp3文件。在您发出此意向之前,请致电此服务
/**
* Fire an intent to start the voice recognition activity.
*/
private void startVoiceRecognitionActivity()
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition Demo...");
startActivityForResult(intent, REQUEST_CODE);
}
/**
* Handle the results from the voice recognition activity.
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK)
{
// Populate the wordsList with the String values the recognition engine thought it heard
ArrayList<String> matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
wordsList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
matches));
}
super.onActivityResult(requestCode, resultCode, data);
}
/**
*激发启动语音识别活动的意图。
*/
私有void startVoiceRecognitionActivity()
{
意向意向=新意向(识别意向、行动、识别言语);
intent.putExtra(识别器intent.EXTRA_语言_模型,
识别者意图、语言、模型、自由形式);
intent.putExtra(RecognizerIntent.EXTRA_提示符,“语音识别演示…”);
startActivityForResult(意图、请求代码);
}
/**
*处理语音识别活动的结果。
*/
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据)
{
if(requestCode==REQUEST\u CODE&&resultCode==RESULT\u OK)
{
//用识别引擎认为听到的字符串值填充wordsList
ArrayList matches=data.getStringArrayListExtra(
识别者意图。额外结果);
setAdapter(新的ArrayAdapter)(这个,android.R.layout.simple\u list\u item\u 1,
火柴);
}
super.onActivityResult(请求代码、结果代码、数据);
}
我想您已经尝试将它们放在两个单独的线程中了?虽然这可能会失败,因为您将尝试同时访问同一个音频文件。您可能需要等待关闭音频文件,然后上载它。一个选择可能是使用静音检测将音频分块录制,然后一次处理几个字。我还无法在语音到文本转换应用程序中实现音频文件的上载。是否可以这样做?如果可以,请您在资源方面帮助我?我只是假设您正在上载它。无论你是如何将语音转换为文本,我认为唯一的方法是将音频保存为小块,并单独处理每个小块。是否可以使用可用的谷歌API存储音频并转换为文本