Google Cloud Speech API 사용후기

by 김도현 | 2017-07-21 17:23
아두이노 음성인식

아두이노 음성 인식 프로젝트에 대해 공부하다보니 여러가지 음성인식 API들이 있었습니다.

그래서 이번 기회에 google cloud speech API를 사용해보면 좋을 것 같아서, 원문을 참고하여 음성을 text로 얼마나 잘 변환시키는지 확인해보았습니다.




0. Google Cloud Speech API란?

Cloud Speech API는 개발자 도구에 구글 음성 인식 기술을 쉽게 통합할 수 있게 해줍니다.

음성을 보내고 google Cloud Speech API 서비스로부터 번역된 텍스트를 받을 수 있습니다.





1. gcloud 설치

참고로 저는 맥북을 사용하고 있습니다.

api를 사용하기 앞서 gcloud sdk를 설치해야 합니다.


1.1 npm 명령어를 이용하여 gcloud 설치

: npm을 이용하여, sudo 권한으로 설치해주었습니다.

sudo npm install -g google-cloud

설치 과정 사진

1.2 환경변수 설정

~/.profile 에 가서 환경변수를 설정해주었습니다.

사실 설치가 끝나고보니, default로 ~/.bash_profile로 만들어놨길래 전 이걸 .profile에 옮겨두었습니다.








2. 구글 클라우드 프로젝트 생성

다음 주소로 이동합니다. (구글 클라우드 서비스 : https://console.cloud.google.com/)

처음 구글 클라우드 서비스를 이용하는 유저라면 무료 크레딧과 12개월동안 평가판을 이용할 수 있습니다.


2.1 우측 상단의 프로젝트 선택 ▾을 선택하여 새로운 프로젝트를 생성

캡쳐에는 초기 설정 이름이 적혀있는데, 저는 프로젝트 이름을 Talking으로 해주었습니다.



2.3 프로젝트 선택

: 우측 상단의 프로젝트 선택 버튼을 눌러 프로젝트를 선택합니다.

2.4 API 를 설정하기 위해 [API 관리자]-[대시보드] 선택


2.5 API 사용 설정 클릭


2.6 google cloud speech API 를 검색하여 사용 설정

: 검색을 하면 목록에 google cloud speech API가 있는 것을 확인할 수 있는데 이를 누른 다음, 사용 설정 버튼(Google Cloud Speech API 글씨 옆 화살표 버튼) 클릭합니다.



2.7 사용자 인증 정보를 생성

: [API 관리자] - [사용자 인증 정보] - [사용자 인증 정보 만들기] - [서비스 계정 키] 클릭



2.8 JSON 파일로 된 서비스 계정 키를 발급받기

: 이 파일은 잘 보관해둡니다.

2.9 사용자 인증 정보를 위한 환경 변수 설정

: 단계 1.2에서 했던 것 처럼 ~/.profile에 가서 환경변수를 추가해줍니다.

아까 받은 json 파일의 경로를 이용하여 아래와 같이 작성합니다.

# google cloud Speech API
GOOGLE_APPLICATION_CREDENTIALS=/json 파일 경로/Talking-************.json





3. Speech API 요청 만들기

3.1 다음 내용의 sync-request.json 파일 생성

{
"config": {
"encoding":"FLAC",
"sampleRateHertz": 16000,
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}








저는 바탕화면에 만들어주었습니다. 리퀘스트 파일의 경로는 상관이 없는 것 같아요.

위의 json 파일 내용을 보면 음성의 인코딩은 FLAC 이며 음성 샘플 레이트가 16000Hz, 언어 코드는 영어로 설정되어 있음을 알 수 있습니다.

만약 예제 음성이 아니라 다른 음성을 사용하고 싶으면 구글 클라우드에 버킷을 만들어서, 음성을 올린 후 그 경로를 url에 입력하고 languageCode 값을 알맞게 제시하면 됩니다.  한국어를 사용하고 싶으면 ko-KR 로 값을 바꿔주시면 되는데, 우선 예제 음성은 영어로 되어있기 때문에 위에 작성된 코드대로 진행합니다.


3.2 다음 명령어를 입력하여 서비스 계정 인증

:service-account-key-file 부분에 아까 받은 json 파일을 경로와 함께 붙여넣어줍니다.

(ex. gcloud auth activate-service-account --key-file=/usr/local/Talking-************.json)

gcloud auth activate-service-account --key-file=service-account-key-file


3.3 서비스 계정의 인증 토큰 받기

: 다음 명령어를 치면 access_token 값을 확인할 수 있습니다.

gcloud auth application-default print-access-token
access_token


3.4 curl 을 사용하여 speech:recognize 요청만들기

: 3.3에서 확인한 access_token 값을 알맞게 붙여넣기 해줍니다. 주의할 점은 curl 명령어를 수행할 때, syn-request.json 파일과 같은 경로에서 수행해야 합니다.

curl -s -H "Content-Type: application/json"\
    -H "Authorization: Bearer access_token"\
    https://speech.googleapis.com/v1/speech:recognize \
    -d @sync-request.json

syn-request.json 앞의 AT(@)도 잘 붙여줍니다.


오타를 조심해야 합니다.


그러면 다음과 같이 결과를 확인할 수 있습니다.

예제 음성은 브루클린 다리가 얼마나 오래되었는가? 라고 영어로 말하는데, 이렇게 이를 텍스트 형태로 확인할 수 있습니다.

댓글 0

MADE BY

김도현

프로그래밍