프로젝트를 하다가 앱을 만드는데 있어서 음성 녹음을 받아서 chatgpt한테 넘겨주는 애플리케이션을 만드는 데 있어서, vad의 중요성을 알게 되었습니다. 관련 아티클 : https://thegradient.pub/one-voice-detector-to-rule-them-all/
VAD의 필요성은, STT를 사용하려면 wav file 또는 mp3 파일이 있어야지 그걸 STT 모델에 전달 할 수 있을 텐데, 이를 자를려면 VAD가 있어야 함을 알게 되었습니다. 만약 VAD가 없다면, 다른 해결방법이 있긴 합니다. socket 통신으로 streaming으로 서버에 계속 보내는 형식으로 STT를 할 수 있는데, 그러는 경우 여러가지 방법이 있긴 한데,
Google STT의 경우 무료로 사용가능한 library 인 만큼 2초 정도 말을 안하면 자동으로 끊기는 문제점이 있었습니다.
Azure STT의 경우 유료이긴 하지만, hackathon으로 사용할 정도의 비용은 되고, 또 끊기는 문제점이 없어서 사용은 가능할 것으로 보였습니다. 하지만 Azure나 Google STT의 경우 둘 다 인터넷을 사용한 api 서비스 이기 때문에, 좋은 폰에서는 굳이 로컬 기능을 사용하지 않을 이유가 없어 보였습니다.
사실 몇 달 전만 하더라도 로컬에서 사용할 정도의 성능이 나오지 않는 것으로 알고 있었는데, 얼마 전에 업데이트가 되어서 로컬 VAD 뿐만 아니라, https://github.com/char5742/flutter_silero_vad javascript 라이브러리 사용하는 vad도 사용이 가능한 것으로 보입니다. https://pub.dev/packages/vad/versions/0.0.3 .
더군다나 Sirelo VAD의 경우 MIT license라서 사용도 용이한 것으로 보입니다. 로컬모델의 경우 onnx 모델을 다운받아서 사용하면 되는 것으로 보입니다.
'Machine Learning > Device' 카테고리의 다른 글
Tx2 illegal instruction error (Core Dumped) (0) | 2021.09.15 |
---|---|
Nvidia Tx2에다가 yolov5 실행하기 (0) | 2021.07.29 |
Tx2 에서 안쓰는 CPU코어 사용하기 (JTOP, nvpmodel 사용) (0) | 2021.01.04 |
Nvidia Jetson Deepstream python sample app configuration(엔비디아 젯슨 딥스트림 파이썬 샘플 앱 구성) (0) | 2020.11.30 |
Tx2에 vscode 설치법 (0) | 2020.11.17 |