2013-04-24 1 views
0

Я разработал приложение, которое записывает аудио для определенной продолжительности, другое, которое использует веб для преобразования речи в текст. Возможно ли, что обе вещи могут быть выполнены одновременно? Я имею в виду записать звук и преобразовать речевую информацию, доступную в этом записанном аудиофайле, в текст?одновременно записывать аудио и конвертировать в текст

+0

Я предполагаю, что вы попытались поместить их в два отдельных потока? Хотя это, вероятно, не удастся, так как вы будете пытаться одновременно обращаться к одному и тому же аудиофайлу. Вероятно, вам нужно подождать, чтобы закрыть аудиофайл, а затем загрузить его. Один из вариантов может заключаться в записи звука в куски с использованием обнаружения молчания и обработки его несколькими словами за один раз. –

+0

Я использую загрузку аудиофайла в приложении преобразования речи в текстовое приложение. Возможно ли это сделать? , не могли бы вы помочь мне с ресурсами? –

+0

Я просто предположил, что вы его загрузили. Однако вы делаете речь в тексте, я думаю, что единственный способ сделать это - сохранить звук в виде небольших фрагментов и обработать каждый по отдельности. –

ответ

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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^