Cloud Speech-to-Text APIで返却されるJSON
Cloud Speech-to-Text APIでテキスト化された文章はJSON形式で返却されます。
参考:JSONってなにもの? | Think IT(シンクイット)
音声を2度、3度聴きながら、テキスト化された文章を校正していくのですが、JSON形式のままだと扱いにくいのです。というのも、不必要な情報(例えば、"confidence"といった信頼度を数値で表した指標)やインデントされていたりするためです。これらがあると、不必要な情報を消したり、インデントを整えたりと、校正するのに手間がかかります。
テキスト化された音声だけを抽出する方法を考えた
作業を効率化するために、テキスト化された部分だけを抜き出すように工夫をしました。
エンジニアなら、コードを書いて必要な情報だけを抽出するというのはできると思うのですが、私にはそんな技術は無く。。。
ということで、先人達の知恵を借りることにしました。目をつけたのはgoogleのスプレッドシートです。
GASを使用するぞ!
私と同じようなことを考えている人はいるんですね。githubを探したら、以下を見つけました。
JSONをgoogleスプレッドシートで扱えるようにするコードです。
使い方は以下です。
スクリプトからコードを張り付ける
ImportJSON.gsの中身をそのままコピーして貼り付けます。
コードはスプレッドシートに貼り付けるのではなく、「ツール」ー「スクリプト」で表示されるスクリプトエディタに貼り付けます。
貼り付けると、こんな感じです。
sheet1にJSONファイルの中身を張り付ける
sheet1にJSONファイルの中身をコピーして貼り付けます。
貼り付けると、以下のようになります。インデントが崩れていますが、無視してかまいません。
sheet2に関数を書く
sheet2に以下の関数を書きます。
=ImportJSONFromSheet("sheet1", "/response/results/alternatives/transcript","noInherit,noTruncate,rawHeaders")
そうすると、以下のようにテキスト化されたものだけが表示されます。A1セルに上記の関数を入力しており、A2セル以降にテキスト化された音声が表示されています。
なお、より細かいパラメータの使い方は以下のようにソースコードにコメントとして記述されています。
For example: =ImportJSONFromSheet("Source", "/feed/entry/title,/feed/entry/content","noInherit,noTruncate,rawHeaders") @param {sheetName} the name of the sheet containg the text for the JSON @param {query} a comma-separated lists of paths to import. Any path starting with one of these paths gets imported. @param {options} a comma-separated list of options that alter processing of the data
テキストエディタに貼り付け
抽出したテキストをエディタに貼り付ければ、校正しやすいです。
「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
- 作者: 小森裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/10
- メディア: 大型本
- 購入: 57人 クリック: 1,242回
- この商品を含むブログ (35件) を見る
この3連休(2019年2月9日~11日)は雪が降るという予報から家族での外出予定をとりやめたり、妻の体調が悪くなったりで、家にいる時間が長かったです。その時間を活用して、文字起こしを深堀してみました。