Gravação de conversas em um asterisco e seu reconhecimento em Yandex.Speech

Projeto pequeno. Implementação simples. Uma nota sobre o plano de discagem de asterisco, comandos de console e API de reconhecimento Yandex. Você vai ler e não pisar no meu ancinho, vou lê-lo em seis meses ou um ano e me lembrar do que fiz.





Objetivo: obter uma representação textual das conversas registradas em um asterisco.





Grave a conversa primeiro

MixMonitor grava a conversa. Normalmente o MixMonitor grava ambos os interlocutores em um canal. Precisamos colocar cada canal em um arquivo separado. Portanto, existem duas opções r e t, onde podemos especificar arquivos para gravar canais diferentes.





O parâmetro b também é usado - para iniciar a gravação no momento em que a conversa começa.





A partir do 16º asterisco havia uma opção S - para sincronizar os arquivos t e r, (naquele que começou a ser gravado posteriormente, o silêncio foi adicionado ao início do arquivo). A opção S foi removida do 18º asterisco, porque este se tornou o comportamento padrão e a contra-opção n foi adicionada. Mas eu uso b, então não precisei dessas danças extras.





MixMonitor (registro-o.wav, br (registro-r.wav) t (registro-t.wav), comando)





Então, também no comando MixMonitor, especificaremos o comando a ser executado após a gravação. Como parte deste comando, normalizaremos cada registro - nivele-o e, em seguida, borraremos os dois registros em um arquivo de dois canais.





sox --norm record-t.wav record-t-norm.wav // normaliza a gravação de um lado da conversa









sox --norm record-r.wav record-r-norm.wav // normaliza a gravação do segundo lado da conversa









sox record-r-norm.wav record-t-norm.wav --channels 2 --combine merge record.wav //





- , - . , , .





record-o.wav - MixMonitor', , .





wav . mp3 .













https://howto.a17.su/asterisk/call-recording.html





https://voxlink.ru/kb/asterisk-configuration/integraciya-asterisk-so-speech-analytics/





.





API : , . - 30 , API .





- wav ogg . wav , API wav-, ogg. , ogg





/usr/bin/ffmpeg -i record.wav -acodec libopus record.ogg // ogg





-, ( ) , .





S3-, S3- . buckets.





.Storage





, , id. id ( , , , ).





.





.





, 2020, - . - 2 .





.. . , , . . , . , . . .





: - . - . . .





, .. ( ).





( SpeechKit)





Chaves de acesso. O principal aqui é não se confundir, pois você terá chaves tanto do serviço de reconhecimento (chave API) quanto do armazenamento S3 (chave estática). Ambos os tipos de chaves estão na conta de serviço.









Esperamos que esta postagem economize alguns minutos e você implemente seu projeto rapidamente conforme necessário.








All Articles