Google Cloud Platform에서 제공하는 Cloud ML중 Speech API를 이용하여 음성파일로 저장한 것을 텍스트로 변환을 해본다.
회의시나 통화중 저장된 음성을 텍스트로 변환할 필요가 생겼는데 이러한 것을 손 쉽게 GCP내의 Speech API를 이용하여 진행한다.
1. 음성파일을 google cloud storage로 업로드를 한다.
gsutil cp <음성파일> gs://<bucket-name>
2. Node.js 환경 설치
a. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
b. Node.js 및 npm 설치
nvm install stable
npm install --save express
3. Sample Speech Git Source 다운로드
git clone https://github.com/googleapis/nodejs-speech.git
4. 복사한 디렉토리 아래 samples로 들어가서 dependency 설치
npm install --save @google-cloud/speech
* npm install만 실행하면 에러가 나서 위의 명령어를 통해 dependency module을 설치한다.
5. API를 사용하기 위한 서비스 Account 생성
Credentials -> Create credentials -> Service account key 로 들어가서 Key를 생성한다.
New service account를 아래와 같이 생성한다. 테스트 목적이기 때문에 권한은 Project Owner로 할당하였다
생성하고 나면 JSON Credential이 생성되고 해당 Json 키를 저장 후 GOOGLE_APPLICATION_CREDENTIALS 환경변수로 설정한다.
export GOOGLE_APPLICATION_CREDENTIALS=/your_path/service_account_file.json
6. 설정이 다 되고 나면 해당 디렉토리에서 아래 명령어를 통해 음성파일을 변환해본다.
node recognize.js --help
참고로 speech api의 경우 Quota가 제한적이다.
https://cloud.google.com/speech/quotas
Quota를 수정하는 곳은 아래에서 수정하면 된다
https://console.cloud.google.com/apis/api/speech.googleapis.com/quotas
그리고 열심히 소스코드 받아서 돌려보다가 보니 gcloud 명령어에서 위 기능을 지원해준다 -_-;;
https://cloud.google.com/sdk/gcloud/reference/ml/speech/recognize-long-running