Attualmente, io uso sox come questo:Utilizzando sox per il rilevamento di voce e lo streaming
sox -d -e u-law --endian little -b 8 -c 1 -r 8000 -t ul - silence 1 0.3 1% 1 0.3 1%
Per riferimento, questa è la registrazione audio dal microfono predefinito e l'output little endian, ulaw audio in formato a 8 bit e un 8k Vota. Il filtro degli effetti taglia l'audio fino a quando il rumore raggiunge una soglia per 0,3 secondi, quindi continua a registrare finché non ci sono 0,3 secondi di silenzio. Tutti questi flussi per lo stdout che uso per lo streaming su un server remoto.
Sto usando tutto questo per registrare un po 'di voce e finire quando ho finito di parlare. Per attivare il sox, utilizzo hardware specializzato per avviare l'avvio della registrazione. Posso passare a quasi tutti i formati audio o codec purché supporti la formattazione/codifica in tempo reale. La mia piattaforma di destinazione è raspbian sul raspberry pi 2 B.
La mia soluzione ideale sarebbe quella di usare vad per fermare la registrazione quando l'utente ha finito di parlare. La mia speranza è che funzioni anche con le chatter di sottofondo. Tuttavia, la documentazione sox sugli stati effetti vad questo:
si consiglia l'uso dell'effetto norma, ma ricordate che né inverso né norma è adatto per l'uso con l'audio in streaming.
Non sono riuscito a mettere insieme i parametri per far funzionare vad e streaming. È possibile utilizzare l'effetto vad per interrompere la registrazione dell'audio mantenendo le connessioni stdin-> sox-> stdout? Ci sono alternative migliori?