東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

Cloud Speech-to-Text APIで出力されたJSONをgoogleスプレッドシートで扱う


スポンサードリンク

Cloud Speech-to-Text APIで返却されるJSON

Cloud Speech-to-Text APIでテキスト化された文章はJSON形式で返却されます。

参考:JSONってなにもの? | Think IT(シンクイット)

音声を2度、3度聴きながら、テキスト化された文章を校正していくのですが、JSON形式のままだと扱いにくいのです。というのも、不必要な情報(例えば、"confidence"といった信頼度を数値で表した指標)やインデントされていたりするためです。これらがあると、不必要な情報を消したり、インデントを整えたりと、校正するのに手間がかかります。

テキスト化された音声だけを抽出する方法を考えた

作業を効率化するために、テキスト化された部分だけを抜き出すように工夫をしました。

エンジニアなら、コードを書いて必要な情報だけを抽出するというのはできると思うのですが、私にはそんな技術は無く。。。

ということで、先人達の知恵を借りることにしました。目をつけたのはgoogleスプレッドシートです。

GASを使用するぞ!

私と同じようなことを考えている人はいるんですね。githubを探したら、以下を見つけました。

JSONgoogleスプレッドシートで扱えるようにするコードです。

github.com

使い方は以下です。

スクリプトからコードを張り付ける

ImportJSON.gsの中身をそのままコピーして貼り付けます。

コードはスプレッドシートに貼り付けるのではなく、「ツール」ー「スクリプト」で表示されるスクリプトエディタに貼り付けます。

貼り付けると、こんな感じです。

f:id:padobure:20190211101445j:plain

sheet1にJSONファイルの中身を張り付ける

sheet1にJSONファイルの中身をコピーして貼り付けます。

貼り付けると、以下のようになります。インデントが崩れていますが、無視してかまいません。

f:id:padobure:20190211100434j:plain

sheet2に関数を書く

sheet2に以下の関数を書きます。

=ImportJSONFromSheet("sheet1", "/response/results/alternatives/transcript","noInherit,noTruncate,rawHeaders")

そうすると、以下のようにテキスト化されたものだけが表示されます。A1セルに上記の関数を入力しており、A2セル以降にテキスト化された音声が表示されています。

f:id:padobure:20190211101138j:plain

なお、より細かいパラメータの使い方は以下のようにソースコードにコメントとして記述されています。

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システムを開発できないのか

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

この3連休(2019年2月9日~11日)は雪が降るという予報から家族での外出予定をとりやめたり、妻の体調が悪くなったりで、家にいる時間が長かったです。その時間を活用して、文字起こしを深堀してみました。