Я разработал приложение, которое записывает аудио для определенной продолжительности, другое, которое использует веб для преобразования речи в текст. Возможно ли, что обе вещи могут быть выполнены одновременно? Я имею в виду записать звук и преобразовать речевую информацию, доступную в этом записанном аудиофайле, в текст?одновременно записывать аудио и конвертировать в текст
0
A
ответ
0
То, как вы это делаете, может быть не очень точным, так как есть много разных предложений для голосового ввода. Но вы можете нанести ему удар.
Насколько я понял, вы должны запустить аудио в фоновом режиме и начать распознавание голоса.
Для фонового обслуживания this как вы их используете. Вы также можете увидеть полное приложение here.
Для распознавания голоса вы можете обратиться к here.
Вот как вы создаете сервис.
Лучше поставить ваш медиа-код в эксплуатацию. Это лучший способ воспроизведения медиа в фоновом режиме.
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();
}
}
где raw - это папка, созданная в ресурсах. и 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);
}
Я предполагаю, что вы попытались поместить их в два отдельных потока? Хотя это, вероятно, не удастся, так как вы будете пытаться одновременно обращаться к одному и тому же аудиофайлу. Вероятно, вам нужно подождать, чтобы закрыть аудиофайл, а затем загрузить его. Один из вариантов может заключаться в записи звука в куски с использованием обнаружения молчания и обработки его несколькими словами за один раз. –
Я использую загрузку аудиофайла в приложении преобразования речи в текстовое приложение. Возможно ли это сделать? , не могли бы вы помочь мне с ресурсами? –
Я просто предположил, что вы его загрузили. Однако вы делаете речь в тексте, я думаю, что единственный способ сделать это - сохранить звук в виде небольших фрагментов и обработать каждый по отдельности. –