이번에 영어로 된 48분정도 되는 음성 녹음을 녹취할 일이 있었는데, 도저히 혼자 힘으로는 할 수 없기에 구글의 힘을 빌려서 진행하였다.

 

1. Google Cloud Speech API

 

https://cloud.google.com/speech/docs/quickstart?hl=ko

 

문서를 참고해서 진행하면 된다.

 

1) SET UP A PROJECT 버튼을 눌러서 프로젝트를 고르고 (없다면 새로 만든다.) Private Key를 받아서 잘 저장한다.

 

Cloud Speech API를 활성화하기 위해서는 https://console.cloud.google.com/home/dashboard 를 타고 대시보드로 들어가서 APIs & Services의 Library 로 가서 Google Cloud Speech API를 검색해 Enable 시킨다.

 

 

2) Cloud SDK 설치

 

https://cloud.google.com/sdk/docs/ 링크를 따라가면 된다. Linux에서는 gcloud를 인스톨하고 gcloud init을 쳐주면 된다.

 

 

3) 매뉴얼에 나온 대로

gcloud auth activate-service-account --key-file=[PATH]

를 입력한다. 이때 [PATH]는 1)에서 받은 Private Key의 경로를 입력한다.

 

 

4) 문서에 나오진 않았지만, curl 도 설치해줘야 진행할 수 있다.

 

 

5) sync-request.json 파일을 문서에 나온 대로 설정해서 저장한다.

 

 

6) sync-request.json이 있는 경로에서 아래의 명령어를 입력하면 바로 리스폰스가 온다.

curl -s -H "Content-Type: application/json" \
    -H "Authorization: Bearer "$(gcloud auth print-access-token) \
    https://speech.googleapis.com/v1/speech:recognize \
    -d @sync-request.json

 

이때 나는 임의로 query.json 으로 저장해서 명령을 날리니 뭐가 꼬였는지 동작하지 않았다. query.json 이라고는 하지 말자.

 

 

 

 

* 여기까지는 간단한데, 이제 음성 파일을 바꿔서 진행하려고 하니 5)에서

"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"

 대신에 뭐를 넣어야 할지 알아보자.

 

https://console.cloud.google.com/home/dashboard 에서 이번엔 Storage를 클릭한다.

 

여기에서 Create Bucket을 눌러 bucket을 만들어준다.

 

그리고 거기에 flac 파일을 올려준 다음, 파일 제일 오른쪽에 Public link를 체크하면 준비가 끝난다.

 

그러면 파일 경로는

gs://버킷이름/파일이름.flac

이 된다. 여기서 gs:// 대신 https://storage.googleapis.com/ 를 입력해서 브라우저에 입력하면 브라우저에서 바로 flac 이 재생되어야 한다.

 

 

 

* 준비한 음성 파일이 1분 이상이라면 이 방식으로 Speech 를 Text로 바꿀 수 없다.

 

에러 메시지에서 대신 longrunningrecognize 를 실행하라고 할 것이다.

 

이것은 https://cloud.google.com/speech/docs/async-recognize 에서 찾을 수 있다.

 

리퀘스트는 아래와 같이 하면 된다.

 

curl -X POST \
     
-H "Authorization: Bearer "$(gcloud auth print-access-token) \
     
-H "Content-Type: application/json; charset=utf-8" \
     
--data "{
  'config': {
    'language_code': 'en-US'
  },
  'audio':{
    'uri':'gs://gcs-test-data/vr.flac'
  }
}"
"https://speech.googleapis.com/v1/speech:longrunningrecognize"

노란 줄 친 부분은 원하는 파일로 바꿔준다.

빨간칠 한 부분은 문서와 다른데, 저렇게 하면 동작하고 gcloud auth application-default print-access-token 로 하면 에러가 발생한다.

 

리퀘스트를 하면 name: 하고 숫자가 잔뜩 나올텐데, 이 숫자를 가지고 기다렸다가 아래와 같이 요청하면 응답이 온다.

 

curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
     
-H "Content-Type: application/json; charset=utf-8" \
     
https://speech.googleapis.com/v1/operations/your-operation-name

 

your-operation-name 대신에 name: 옆에 나온 숫자를 넣는다.

 

이때 대충 음성파일 길이의 3분의 1 ~ 2분의 1 정도의 시간이 걸렸다.

+ Recent posts