Riconoscimento vocale su android con clip audio registrata?

Ho usato la function di riconoscimento vocale su Android e l'amo. È una delle caratteristiche più apprezzate dai miei clienti. Tuttavia, il formato è un po 'restrittivo. Devi call l'intento del riconoscente, invialo la logging per la trascrizione a google e aspetta il text di nuovo.

Alcune delle mie idee richiederebbero di registrare l'audio all'interno della mia app e quindi submit la clip a google per la trascrizione.

  • CheckBox ha controllato / non modificato le modifiche di stato in listView BaseAdapter
  • come aggiungere nuova row ai contenuti e-mail?
  • Spingere un aggiornamento a Google Play che sostituirà l'applicazione esistente
  • Posso interrompere una chiamata in modo programmato in android?
  • Come implementare OnScrollListener in una list?
  • Xmlhttprequest restituisce 401 su applicazione phonegap / android
  • C'è un modo per submit una clip audio da elaborare con il discorso al text?

  • SQLite - inserimento di una string con newlines nel database dal file csv
  • Android <-> comunicazione diretta iOS (Bluetooth). È ansible?
  • Esiste un esempio non youtube per implementare DASH utilizzando ExoPlayer?
  • Java (Android): come scalare un disegno senza Bitmap?
  • Nome del mese come string
  • HttpResponse a String android
  • 3 Solutions collect form web for “Riconoscimento vocale su android con clip audio registrata?”

    Ho una soluzione che funziona bene per avere riconoscimenti vocali e logging audio. Ecco il collegamento a un semplice progetto Android che ho creato per mostrare che la soluzione funziona. Inoltre, ho messo alcune schermate di printing all'interno del progetto per illustrare l'applicazione.

    Cercherò di spiegare brevemente l'approccio che ho usato. Ho combinato due funzionalità in quel progetto: Google Speech API e logging Flac.

    API Google Speech viene chiamata tramite connessioni HTTP. Mike Pultz fornisce maggiori dettagli sull'API :

    "(…) la nuova API [Google] è un'API di streaming full-duplex. Ciò significa che utilizza in realtà due connessioni HTTP: una richiesta POST per caricare il contenuto come un stream chunked" live "e un seconda richiesta GET per accedere ai risultati, che ha molto più senso per i campioni audio più lunghi, o per l'audio in streaming ".

    Tuttavia, questa API richiede di ricevere un file audio FLAC per funzionare correttamente. Questo ci fa andare alla seconda parte: logging Flac

    Ho implementato la logging di Flac in quel progetto attraverso l'estrazione e l'adeguamento di alcuni pezzi di codice e librerie da un'applicazione open source chiamata AudioBoo. AudioBoo usa il codice nativo per registrare e riprodurre il formato flac.

    Così è ansible registrare un suono flac, inviarlo all'API di Google Speech, ricevere il text e riprodurre il suono appena registrato.

    Il progetto che ho creato ha i principi fondamentali per far funzionare e può essere migliorato per situazioni specifiche. Per farlo funzionare in uno scenario diverso, è necessario get un codice API Google Speech, ottenuto facendo parte del gruppo Google Chromium-dev. Ho lasciato una chiave in quel progetto solo per mostrare che sta funzionando, ma lo rimuoverò alla fine. Se qualcuno ha bisogno di ulteriori informazioni su di esso, dimmi perché non posso mettere più di 2 link in questo post.

    Purtroppo non in questo momento. L'unica interface attualmente supportta dal servizio di riconoscimento vocale di Android è il ReceachzerIntent , che non consente di fornire i propri dati sonori.

    Se questo è qualcosa che vorresti vedere, file una richiesta di funzionalità all'indirizzo http://b.android.com . Ciò è anche tangenzialmente correlato all'edizione precedente 4541 .

    Per quanto ne so, non c'è ancora modo di submit direttamente un clip audio a Google per la trascrizione. Tuttavia, Froyo (livello API 8) ha introdotto la class SpeechReceachzer , che fornisce l'accesso diretto al servizio di riconoscimento vocale. Così, ad esempio, è ansible avviare la riproduzione di un clip audio e triggersre l'triggerszione del riconoscitore vocale in background, che restituirà i risultati dopo il completamento a un metodo di richiamata dell'ascoltatore definito dall'utente.

    Il seguente codice di esempio deve essere definito all'interno di un'attività poiché i methods di SpeechReceachzer devono essere eseguiti nel thread di applicazione principale. Inoltre, sarà necessario aggiungere l'authorization RECORD_AUDIO al tuo AndroidManifest.xml.

    boolean available = SpeechReceachzer.isReceachtionAvailable(this); if (available) { SpeechReceachzer sr = SpeechReceachzer.createSpeechReceachzer(this); sr.setReceachtionListener(new ReceachtionListener() { @Override public void onResults(Bundle results) { // process results here } // define your other overloaded listener methods here }); Intent intent = new Intent(ReceachzerIntent.ACTION_RECOGNIZE_SPEECH); // the following appears to be a requirement, but can be a "dummy" value intent.putExtra(ReceachzerIntent.EXTRA_CALLING_PACKAGE, "com.dummy"); // define any other intent extras you want // start playback of audio clip here // this will start the speech receachzer service in the background // without starting a separate activity sr.startListening(intent); }
    boolean available = SpeechReceachzer.isReceachtionAvailable(this); if (available) { SpeechReceachzer sr = SpeechReceachzer.createSpeechReceachzer(this); sr.setReceachtionListener(new ReceachtionListener() { @Override public void onResults(Bundle results) { // process results here } // define your other overloaded listener methods here }); Intent intent = new Intent(ReceachzerIntent.ACTION_RECOGNIZE_SPEECH); // the following appears to be a requirement, but can be a "dummy" value intent.putExtra(ReceachzerIntent.EXTRA_CALLING_PACKAGE, "com.dummy"); // define any other intent extras you want // start playback of audio clip here // this will start the speech receachzer service in the background // without starting a separate activity sr.startListening(intent); } 

    È inoltre ansible definire il proprio servizio di riconoscimento vocale estendendo il servizio di riconoscimento , ma è al di là della portta di questa risposta 🙂

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.