1. kkitase

    No comment

    kkitase
Changes in body
Source | HTML | Preview
@@ -1,106 +1,106 @@
英語音声ファイルを [Google Speech-to-Text](https://cloud.google.com/speech-to-text/) を使ってテキスト化し、[Google スプレッドシート](https://docs.google.com/spreadsheets/create)で翻訳する方法を聞かれたので解説してみます。色々方法はありますが、ここでは、Google Cloud Platform (GCP) の Cloud Shell から、 gcloud コマンドを使った方法を説明します。
## 全体の流れのイメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42406/06ec945a-dcc5-1419-5cc3-c73ec2e42e6b.png)
## 手順
### mp3 を flac に変換
今回は、[online-convert.com](https://audio.online-convert.com/convert-to-flac) を使います。また、今回使うファイル `test.mp3` は 元同僚の会社が開催した Webinar の音声です。
- `test.mp3` を [online-convert.com](https://audio.online-convert.com/convert-to-flac) にアップロード
- 下記パラーメータを指定して、`test.mp3` を `test.flac` にコンバート
| Parameter | Value |
|:--------|:--------|
| Change bit resolution| 16 bit |
| Change sampling rate| 16000Hz |
| Change audio channels| mono |
### コンバートされた flac ファイルをダウンロード
自分のパソコン等に `test.flac` をダウンロードしておきます。
### GCP の初期設定
- [Cloud Console](https://console.cloud.google.com/) で Project を作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42406/9c261fed-e108-f542-06fb-86e15144e67a.png)
- Cloud Speech-to-Text API を有効に(検索窓より、`Speech-to-Text`で検索)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42406/d6ab24d6-291b-b77b-a495-a26234badb9f.png)
### Google Cloud Storage(GCS)に、flac ファイルをアップロード
- [GCS](https://console.cloud.google.com/storage/browser) でバケットを作成(フォルダのようなもの。今回は`0228-speech` というバケットを作成しました。)バケットを作成する際にいくつか聞かれますが、バケットの名前だけいれて、後は、続行 ➡️ 続行 ➡️ 続行 ➡️ 続行 ➡️ 作成で進めてください。
- `test.flac` ファイルをアップロード
### flac ファイルをテキスト化
- Cloud Console から、[Cloud Shell を有効にする] をクリックし、Cloud Shell を起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42406/3b8067fa-0a68-3174-0ac3-7ad567973e09.png)
- gcloud コマンドにより、`test.flac` ファイルをテキスト化します。
```bash
-📣test.flac を text 化
+📣test.flac を text 化(バケット名、ファイル名は自分のものを使ってください)。
gcloud ml speech recognize-long-running \
'gs://0228-speech/test.flac' \
--language-code='en-US' --async
Check operation [operations/8912459795353051547] for status.
{
- "name": "8912459795353051547" 📣この ID をコピしておいてください
+ "name": "8912459795353051547" 📣この OPERATION_ID をコピしておいてください
}
-📣進行状況チェック
-gcloud ml speech operations describe 8912459795353051547
+📣進行状況チェック(OPERATION_ID は上のステップでコピーしたもの)
+gcloud ml speech operations describe OPERATION_ID
{
"metadata": {
"@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata",
"lastUpdateTime": "2020-02-28T12:05:09.348366Z",
"progressPercent": 28, 📣進捗率 28% ということ
"startTime": "2020-02-28T11:43:58.633950Z"
},
"name": "8912459795353051547"
}
📣翻訳作業が終わるまで待ちます。
gcloud ml speech operations wait 8912459795353051547
Waiting for operation [operations/7937026915648676605] to complete....
📣終わったら、test.json ファイルを作成
gcloud ml speech operations describe 8912459795353051547 > test.json
```
- gcloud コマンドにより、`test.flac` ファイルを GCS に転送します。
```bash
📣test.json を Google Cloud Storage に転送
gsutil cp test.json gs://0228-speech/test.json
📣test.json を Google Cloud Storage で公開
gsutil acl ch -u AllUsers:R gs://0228-speech/test.json
Updated ACL on gs://0228-speech/test.json
```
### GCS にアップロードされた JSON ファイルを Google スプレッドシートにパース
- [How to import JSON data into Google Spreadsheets in less than 5 minutes](https://medium.com/@paulgambill/how-to-import-json-data-into-google-spreadsheets-in-less-than-5-minutes-a3fede1a014a) に簡潔な手順があるので、こちらを参考に、`import_json_appsscript.js` を使ってパースします。このままだと、GCS 上のファイルを削除すると参照できなくなるので、一度コピーして、テキストだけをペーストするといいかもしれません。
- うまくパースできたら、[GOOGLETRANSLATE 関数](https://support.google.com/docs/answer/3093331?hl=ja)を使って、翻訳します。
- 完成イメージは、こんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42406/10c91a33-952c-bea5-ecdb-b18e3555a689.png)
### GCS にアップロードしたファイルを削除
最後に、GCS にアップロードしたファイルを削除しておきます。まだ使うという方は残しておいても問題ありませんが、少々課金されますのでご注意を。
```bash
📣GCS に作成したバケットにあるファイルをすべて削除
gsutil -m rm gs://0228-speech/**
```
--
解説は以上です。