아마추어 chatgpt 활용기

음성인식 문제 해결 시도-6(VITO Speech API 설치 및 사용법/무료 음성 API)

promptoperator 2023. 5. 23. 21:04
반응형

VITO 홈페이지에 접속해서 음성인식 API를 사용하기 위한 방법을 찾아보았다.

 

우선 VITO Speech API 발급을 위해 Client ID, Client Secret 키를 받는 방법을 포스팅한다.

 

1. VITO Speech API를 이용하기 위해 홈페이지에 접속한다.(https://www.vito.ai/)

 

2. 홈페이지 상단에 회원가입을 먼저 한다.

 

 

3. 회원가입 아래 빈칸을 작성하고 약관동의를 하고 가입하기를 누른다.

 

4. 그럼 이메일로 인증하기 메일을 보내는데 인증하기를 눌러주면 된다.

 

5. 그리고 로그인 버튼을 눌러 이메일과 비밀번호를 입력하고 로그인하기를 한다.

 
 

6. 로그인 후 MY콘솔 메뉴를 클릭한다.

 
 

7. Console에 애플리케이션 등록하기를 누른다. 기존에 나는 행맨게임을 등록 해났다..

그럼 오른쪽에 애플리케이션 추가하기 창이 뜨는 데 사용하고자 하는 이름을 타이핑하고 추가하기 버튼을 눌러준다.

 

 
 

8. 그럼 Client ID, Client Secret 가 발급된다. 단 이때 반드시 기억해두어야 할 건

별도로 저장을 꼭 해두어야 한다. 분실 시 재발급만 가능하기 때문이다.

 

9. 그럼 발급된 Client ID, Client Secret를 가지고 프로그램 작성을 하러 간다..

 

 

 

 

그럼 VITO STT OpenAPI는 음성인식에 대해 조금 더 알아보자

일반 STT와 스트리밍 STT 두 가지 형태의 음성인식을 제공한다.

즉 일반 STT는 음성 파일을 변환하는 기능이며,

스트리밍 STT는 실시간으로 음성을 처리하는 기능이다.

 

GPT 보충 설명

일반 STT와 스트리밍 STT의 차이는?

음성인식을 처리하는 방식에서 차이가 있다.

 

일반 STT (Batch STT):

음성 파일 단위로 처리된다.

사용자가 미리 녹음한 음성 파일을 서버에 전송하여 처리한다.

파일을 서버로 업로드한 후, 일반 STT 알고리즘에 의해 파일이 변환되고 텍스트로 추출된다.

처리 과정은 파일의 크기와 길이에 따라 다소 시간이 소요될 수 있다.

한 번에 전체 음성 파일을 처리하는 방식이기 때문에 음성의 연속성이 유지되어야 한다.

 

스트리밍 STT (Real-time STT):

실시간으로 음성을 처리한다.

사용자의 음성을 실시간으로 서버로 전송하면, 스트리밍 STT 알고리즘이 음성을 실시간으로 변환하여 텍스트로 추출한다.

음성을 작은 청크(chunk) 단위로 전송하고, 서버에서는 이를 실시간으로 처리하여 텍스트를 반환한다.

사용자의 음성이 계속해서 전달되고, 결과도 실시간으로 반환되기 때문에 대화형이나 실시간 상호작용에 적합하다.

일반 STT는 음성 파일을 변환하는 데에 사용되며, 스트리밍 STT는 실시간으로 음성을 처리하여 실시간 응답을 제공하는 데에 사용됩니다. 행맨 게임과 같이 실시간 상호작용이 필요한 경우에는 스트리밍 STT를 사용하는 것이 적합하다.

 

그런데 내가 사용하려는 스트리밍 STT 방식에

grpcweb socket 방식이 있다. 차이가 뭘까? 각각의 장단점에 대해 GPT에게 물어보았다.

 

GRPC

 

장점:

효율적인 이진 프로토콜: gRPCProtocol Buffers를 사용하여 데이터를 직렬화하고 전송하기 때문에 효율적인 이진 프로토콜을 제공합니다. 이는 네트워크 대역폭을 절약하고 빠른 데이터 전송을 가능하게 합니다.

다양한 언어 지원: gRPC는 여러 프로그래밍 언어를 지원하며, 클라이언트와 서버 간에 언어 종속성을 줄일 수 있습니다.

양방향 스트리밍: gRPC는 양방향 스트리밍을 지원하므로, 클라이언트와 서버 간에 연속적인 데이터를 주고받을 수 있습니다.

 

단점:

추가 구현 및 설정: gRPC를 사용하려면 프로토콜 버퍼를 정의하고 컴파일해야 하며, 서버와 클라이언트 간의 추가 구현 및 설정이 필요합니다.

환경 제약: gRPC는 서버와 클라이언트 간에 동일한 프로토콜 버퍼 정의를 사용해야 합니다. 이는 서버와 클라이언트 간의 버전 일치와 호환성 문제를 고려해야 함을 의미합니다.

 

WebSocket

 

장점:

브라우저 지원: WebSocket은 웹 표준 프로토콜로, 브라우저에서 기본적으로 지원됩니다.

실시간 푸시 기능: WebSocket은 서버에서 클라이언트로 실시간으로 데이터를 푸시할 수 있는 기능을 제공합니다.

더욱 편리한 개발: WebSocket은 기존의 HTTP 연결을 유지하면서 실시간 양방향 통신을 가능하게 해 주므로,, 개발자들이 편리하게 구현할 수 있습니다.

 

단점:

추가 구현 및 설정: WebSocket을 사용하려면 서버와 클라이언트 간의 추가적인 구현 및 설정이 필요합니다.

HTTP/2보다 느린 속도: WebSocketHTTP/1.1을 기반으로 하기 때문에 HTTP/2보다는 상대적으로 느린 속도이다.

 

 

즉 내가 써야 할 것은 무엇인가?

 

음성인식 행맨 게임에서 정확한 알파벳 인식과 빠른 속도가 필요하다면 gRPC를 사용하는 것이 좋다. gRPC는 효율적인 이진 프로토콜을 사용하므로 데이터 전송이 빠르고 네트워크 대역폭을 절약할 수 있다고 한다. 또한, 양방향 스트리밍을 지원하므로 클라이언트와 서버 간에 연속적인 데이터를 주고받을 수 있다.

 

WebSocket도 실시간 통신을 제공하지만, gRPC와 비교했을 때 속도 측면에서는 약간 느릴 수 있다.

 

따라서, 정확한 알파벳 인식과 빠른 속도를 필요로 한다면 gRPC를 선택하는 것이 좋다.

그럼 이제 행맨게임에 코드를 넣어서 작성해 봐야겠다.