2016-05-14 7 views
1

Ich versuche, eine App zu erstellen, die es einem Benutzer ermöglicht, eine von Googles Rede erstellte Audiodatei in einen Server hochzuladen. Ich habe es geschafft, die URI für die Audiodatei zu erhalten, aber wie kann ich darauf zugreifen oder sie in ein hörbares Format konvertieren? Ich habe versucht, es wiederzugeben, aber bisher nichts. Das habe ich.Android Speech to Text Audio

Meine Sprache in Text

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode){ 
     case REQ_CODE_SPEECH_INPUT: { 
      Bundle bundle = data.getExtras(); 
      if(resultCode==RESULT_OK && null!= data){ 
       ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
       vtt.setText(result.get(0)); 
       Uri audioUri = data.getData(); 
       uri.setText(String.valueOf(audioUri)); 
       audioPath = uri.getText().toString(); 

      } 
      break; 

     } 
    } 
} 

Als ich versuchte, die audioPath Variable zu spielen. Nichts kam heraus. Wie konvertiere ich es in ein hörbares Format?

Beispiel einer uri, die ich bekam

content://com.google.android.googlequicksearchbox.AudioProvider/NoteToSelfOriginalAudio1.amr 

Dank für Ihre Hilfe danken

ich irgendwo gefunden, dass ich Inhalt Resolver und mit dem Eingabestrom etwas tun verwenden sollte aber ich bin nicht sicher, was.

+1

Mögliche Duplikat [Aufzeichnung/Speichern von Audio von Spracherkennung Absicht] (http://stackoverflow.com/questions/23047433/record- Funktionen zu nutzen wäre Speichern-Audio-von-Spracherkennung-Absicht) –

Antwort

0

Ich schaffte es, die Frage zu lösen.

von Apache Commons IO Der einfachste Weg

audioPath = uri.getText().toString(); 
       finalPath = combinedPath.replaceAll(" ",""); 
       Log.d("Filepath",combinedPath.replaceAll(" ","")); 
       ContentResolver contentResolver = getContentResolver(); 
       try{ 
        InputStream filestream = contentResolver.openInputStream(audioUri); 
        File targetFIle = new File(finalPath); 
        FileUtils.copyInputStreamToFile(filestream,targetFIle); 
       }catch (IOException e){ 
        e.toString(); 
       }