우선 VITO Speech API를 이용하기 전에 파이썬으로 TOKEN 발급 방법과 테스트를 위한 코드를 알아보고자 한다.
TOKEN 발급받는 방법
import requests
client_id'User_id'
client_secret'User_secret'
resprequests.post(
'https://openapi.vito.ai/v1/authenticate',
data={'client_id': client_id, 'client_secret': client_secret}
)
resp.raise_for_status()
response_dataresp.json()
access_tokenresponse_data['access_token']
print(f'Access Token: {access_token}')
위에 client_id와 client_secret에 VITO홈페이지에서 발급받은 id와 secret을 입력을 하고 코드를 실행하면 Token이 발급된다.

옆 interpreter 화면에 Access Token 이 생성되면서 영어 알파벳으로 이루어진 긴 문장이 만들어진다. 저 Access Token을 복사해서 다음에 Test 할 코드에 삽입하면 된다. 이때 Token은 최대 6시간으로 한정되어 있기 때문에 6시간이 지난 후에는 새로 발급받아야 한다.
그럼 이제 grpc 방법으로 VITO 홈페이지에서 음성 인식 API를 이용해 테스트하는 코드를 알아보자.
import pyaudio
import vito_stt_client_pb2 as pb
import vito_stt_client_pb2_grpc as pb_grpc
import grpc
TOKEN =
'eyJhbGciOiJIUzIdfsfwenkaIkpXVCJ9.eyJleHAiOjE2ODUyNjM2NjMsImlhdCI6MTY4NTI0MjA2MywianRpIjoiQ1FER3RreVd6MWwwTmE5a3JRbXEiLCJwbGFuIjoiYmFzaWMiLCJzY29wZSI6InNwZWVjaCIsInN1YiI6IklzaV94LW9ZTEg5ekpyLXdXOGFuIn0.iAQ6hH0j8nz515_S6YWWBaC-pzH_xOAmbQirewinkk' # Enter your acquired access token here
def transcribe_streaming_grpc():
base = "grpc-openapi.vito.ai:443"
with grpc.secure_channel(base, credentials=grpc.ssl_channel_credentials()) as channel:
stub = pb_grpc.OnlineDecoderStub(channel)
cred = grpc.access_token_call_credentials(TOKEN)
def audio_stream_generator():
p = pyaudio.PyAudio()
stream = p.open(
format=pyaudio.paInt16,
channels=1,
rate=16000, # Adjust the sample rate if needed
input=True,
frames_per_buffer=1024
)
config = pb.DecoderConfig(sample_rate=16000, use_itn=True)
yield pb.DecoderRequest(streaming_config=config)
while True:
audio_data = stream.read(1024)
yield pb.DecoderRequest(audio_content=audio_data)
req_iter = audio_stream_generator()
resp_iter = stub.Decode(req_iter, credentials=cred)
for resp in resp_iter:
for res in resp.results:
if res.is_final:
print("Final Result:", res.alternatives[0].text)
def start_transcribe():
print("Start transcribing...")
transcribe_streaming_grpc()
# Initiate a real-time speech recognition request using an access token
start_transcribe()
위와 같이 코드 작성 후 실행을 하면 된다. 이제 발급받은 코드는 TOKEN(# Enter your acquired access token here)에 입력해 주면 된다. 지금 들어가 있는 코드는 임의로 내가 수정한 코드라서 별도 실행되지 않으니 발급받은 TOKEN을 입력해 주면 된다.
테스트 결과

그런데 한 가지 착각하고 있었던 것은 한글음성인식만 지원되는 것이었다. 한글음성인식 정확도는 뛰어났다. 영어알파벳을 한글로 인식이 잘 되는지 테스트해 보았다. 예전 pocketsphinx보다는 정확도나 속도면에서는 훨씬 뛰어났지만.... 역시 알파벳 낱개를 한 개로 인식하는 데에는 약간의 어려움이 있는 것 같은데 어떻게 풀어야 할지 또 고민을 해봐야겠다.
'아마추어 chatgpt 활용기' 카테고리의 다른 글
음성인식 문제 해결 시도-6(VITO Speech API 설치 및 사용법/무료 음성 API) (0) | 2023.05.23 |
---|---|
음성인식 문제 해결 시도-5(새 음성모델을 찾아서) (2) | 2023.05.22 |
음성 인식 문제 해결시도 4- PocketSphinx 라이브러리 (0) | 2023.05.18 |
음성인식 문제 해결 시도3- Thread 사용 (0) | 2023.05.14 |
음성인식 문제 해결 시도2 - <Return> 이벤트 바인딩 (3) | 2023.05.13 |