「AIメーカー」で画像・音声・動画ファイル、YouTube、録音から文字起こしを行う議事録AIを作ってみた


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">みんな～！「AIメーカー」で文字起こし機能をリリースしたよー！<br>以下の方法で簡単に文字起こしを試せるので、ぜひ使ってみて～！！<br>📺YouTubeから文字起こし<br>🔗画像、音声、動画から文字起こし<br>🎙️録音で文字起こし<br><br>AIをうまく使って少しでも面倒な作業から解放だぁ～！<a href="https://t.co/qo13Wo6Yli">https://t.co/qo13Wo6Yli</a> <a href="https://t.co/gsRigVROnK">pic.twitter.com/gsRigVROnK</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1030652280914173953?ref_src=twsrc%5Etfw">2018年8月18日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

---

こんにちは、2z（Twitter： [@2zn01](https://twitter.com/2zn01) ）です。

誰でも気軽にAIを使える＆作れる！みんなのAIプラットフォーム「AIメーカー」を開発しています！

■AIメーカー
https://aimaker.io/

「AIメーカー」は画像認識の機能を先月（2018/7/16）にリリースしました！

僕が「AIメーカー」を開発して目指している今後の構想を含めて、詳しくは以下の記事にまとめましたので、ぜひご覧ください！

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">AIメーカーでオープンイノベーションを！！<br>みんなのAIプラットフォームとして自分の考えている構想、実現したいことをまとめましたので、ぜひご覧ください！<br>（あと、1いいねで600いいね😀）<br>on <a href="https://twitter.com/Qiita?ref_src=twsrc%5Etfw">@Qiita</a> <a href="https://t.co/73fNAWyBtz">https://t.co/73fNAWyBtz</a><a href="https://twitter.com/hashtag/AI%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC?src=hash&amp;ref_src=twsrc%5Etfw">#AIメーカー</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1028299281139023872?ref_src=twsrc%5Etfw">2018年8月11日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


## 今回作ったもの

今回は世の中の面倒な作業として上位にランクインするはずの文字起こしに挑戦し、「AIメーカー」の機能としてリリースしました！
文字起こしは大きく以下の３つの方法から行えます。

1. 📺 YouTubeの動画から文字起こし
2. 🔗 画像、音声、動画のファイルから文字起こし
3. 🎙️ PCやスマホのマイクから音声を録音して文字起こし


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">みんな～！「AIメーカー」で文字起こし機能をリリースしたよー！<br>以下の方法で簡単に文字起こしを試せるので、ぜひ使ってみて～！！<br>📺YouTubeから文字起こし<br>🔗画像、音声、動画から文字起こし<br>🎙️録音で文字起こし<br><br>AIをうまく使って少しでも面倒な作業から解放だぁ～！<a href="https://t.co/qo13Wo6Yli">https://t.co/qo13Wo6Yli</a> <a href="https://t.co/gsRigVROnK">pic.twitter.com/gsRigVROnK</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1030652280914173953?ref_src=twsrc%5Etfw">2018年8月18日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## 画面／利用イメージ

### 全体

<img width="880" alt="aimaker_recognize_text.png" src="https://qiita-image-store.s3.amazonaws.com/0/273248/5c6c4439-386d-51ed-f06e-7e063aa5ce8f.png">


### 画像・音声・動画ファイルから文字起こし

<img width="411" alt="aimaker_recognize_text_by_file.png" src="https://qiita-image-store.s3.amazonaws.com/0/273248/a8e2e2bd-883c-6008-3d9b-3a6f7325fb29.png">


文字起こししたい画像、音声、動画ファイルをドラッグ＆ドロップしてアップロードして頂くと、アップロードしたファイルから文字起こしを行います。
画像の場合は画像内に含まれる文字を抽出し、動画の場合は動画内の音声を抽出して文字起こしします。

以下の拡張子のファイルに対応しており、10MB以内で（音声、動画の場合は）5分以内であれば、1日1回まで文字起こしをお試し頂けます。

* 画像ファイル：JPEG／PNG／GIF
* 音声ファイル：WAV／MP3／WMA／AAC／M4A／FLAC／OGG
* 動画ファイル：P4／AVI／FLV／MOV／WMV


### YouTubeから文字起こし

<img width="408" alt="aimaker_recognize_text_by_youtube.png" src="https://qiita-image-store.s3.amazonaws.com/0/273248/fd64555f-b303-3afa-8bfc-ed26c3ab4436.png">


文字起こししたいYouTube動画のURLを指定すると、YouTubeの動画をダウンロードした上で動画内の音声を抽出して、文字起こしを行います。
5分以内であれば、1日1回まで文字起こしをお試し頂けます。


### 録音から文字起こし

<img width="407" alt="aimaker_recognize_text_by_recording.png" src="https://qiita-image-store.s3.amazonaws.com/0/273248/914445ac-c94d-f184-7033-e71b08694379.png">

PCやスマホのマイクから音声を録音して、文字起こしを行います。
5分以内であれば、1日1回まで文字起こしをお試し頂けます。


### 文字起こしデータの出力

<img width="850" alt="aimaker_recognize_text_output.png" src="https://qiita-image-store.s3.amazonaws.com/0/273248/83bc4ad0-a90d-dc12-d5bf-098f0ede0bdf.png">


文字起こししたデータは以下の方法にて一括で出力可能です。

* コピー
* CSV
* Excel
* PDF
* 印刷


## 文字起こしの仕組み

### 画像ファイルから文字起こし

* Google Compute Engine（サーバ）
* Google Cloud Storage（ストレージ）
* Google Cloud Vision API（画像認識）

![aimaker_recognize_system_by_image.png](https://qiita-image-store.s3.amazonaws.com/0/273248/4211073b-cb80-a24d-782e-89a0f8bb8646.png)

* Google Compute Engine上に立ち上げたサーバからアップロードされた画像ファイルをGoogle Cloud Storage（GCS）上へアップした上で、Google Cloud Vision APIにGCS上の画像URIを送信し、文字起こしされた結果を受け取っています。

### 音声ファイルから文字起こし

* Google Compute Engine（サーバ）
* Google Cloud Storage（ストレージ）
* Google Cloud Speech API（Speech-to-Text／音声認識）

![aimaker_recognize_system_by_sound.png](https://qiita-image-store.s3.amazonaws.com/0/273248/0a23e3ea-7f69-0d23-219a-63aae28270ea.png)

* Google Compute Engine上に立ち上げたサーバからアップロードされた音声ファイルをGoogle Cloud Storage（GCS）上へアップした上で、Google Cloud Speech APIにGCS上の音声URIを送信し、文字起こしされた結果を受け取っています。

### 動画ファイルから文字起こし

* Google Compute Engine（サーバ）
* Google Cloud Storage（ストレージ）
* Google Cloud Speech API（Speech-to-Text／音声認識）
* ffmpeg（動画→音声の変換）

![aimaker_recognize_system_by_video.png](https://qiita-image-store.s3.amazonaws.com/0/273248/cb928865-2fd3-344a-abc4-c353f18ce550.png)

* Google Compute Engine上に立ち上げたサーバからアップロードされた動画ファイルをffmpegを使って音声ファイルへ変換し、Google Cloud Storage（GCS）上へアップした上で、Google Cloud Speech APIにGCS上の音声URIを送信し、文字起こしされた結果を受け取っています。


### YouTubeから文字起こし

* Google Compute Engine（サーバ）
* Google Cloud Storage（ストレージ）
* Google Cloud Speech API（Speech-to-Text／音声認識）
* ffmpeg（動画→音声の変換）

![aimaker_recognize_system_by_youtube.png](https://qiita-image-store.s3.amazonaws.com/0/273248/a6b04e6d-8b5d-1da3-bf39-9017f89d3865.png)

* Google Compute Engine上に立ち上げたサーバで指定されたYouTubeの動画をダウンロードしてffmpegを使って音声ファイルへ変換し、Google Cloud Storage（GCS）上へアップした上で、Google Cloud Speech APIにGCS上の音声URIを送信し、文字起こしされた結果を受け取っています。


### 録音から文字起こし

* Google Compute Engine（サーバ）
* Google Cloud Storage（ストレージ）
* Google Cloud Speech API（Speech-to-Text／音声認識）
* HTML5 Web Audio API getUserMedia（PC／スマホのマイクから録音）

![aimaker_recognize_system_by_recording.png](https://qiita-image-store.s3.amazonaws.com/0/273248/70c93897-6dd7-0e45-07b1-a84e8d5094dc.png)

* HTML5のWeb Audio API getUserMediaを使ってPC／スマホのマイクから録音をしつつ、定期的に音声ファイルとしてアップロード
* Google Compute Engine上に立ち上げたサーバからアップロードされた音声ファイルをGoogle Cloud Storage（GCS）上へアップした上で、Google Cloud Speech APIにGCS上の音声URIを送信し、文字起こしされた結果を受け取っています。

HTML5のWeb Audio API getUserMediaはiOS11から使用できるようになりました！
なので、iPhoneでiOSが最新のバージョンであれば、スマホで録音からの文字起こしが可能です。


## 作った過程など

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">【AIメーカーに文字起こし機能を実装するぞ！】<a href="https://twitter.com/hashtag/%E5%BF%9C%E6%8F%B4%E3%81%97%E3%81%A6?src=hash&amp;ref_src=twsrc%5Etfw">#応援して</a> <a href="https://twitter.com/hashtag/%E8%A4%92%E3%82%81%E3%81%A6?src=hash&amp;ref_src=twsrc%5Etfw">#褒めて</a> <a href="https://twitter.com/hashtag/%E3%82%84%E3%82%8B%E3%81%9E%E5%AE%A3%E8%A8%80?src=hash&amp;ref_src=twsrc%5Etfw">#やるぞ宣言</a><br> <a href="https://t.co/h3gcOZR5st">https://t.co/h3gcOZR5st</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1028529913236611073?ref_src=twsrc%5Etfw">2018年8月12日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">AIメーカーで文字起こしの機能を実装中！<br>議事録AIを目指して、録音による文字起こしも実装してますが、地味に面倒くさいぞ。<br>あともう一歩というところなので、近々リリースできると思います！たぶん<a href="https://twitter.com/hashtag/AI%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC?src=hash&amp;ref_src=twsrc%5Etfw">#AIメーカー</a> <a href="https://t.co/yiNjCgWvjE">pic.twitter.com/yiNjCgWvjE</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1026150393976315905?ref_src=twsrc%5Etfw">2018年8月5日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ちなみに、今回の「AIメーカー」の文字起こし機能のリリースですが、<br>お恥ずかしながら、文字起こし君を開発されたDai(<a href="https://twitter.com/never_be_a_pm?ref_src=twsrc%5Etfw">@never_be_a_pm</a>)さんよりご助言頂いたGoogle Cloud Vision APIのDOCUMENT_TEXT_DETECTIONをちゃんと使っております！！ので、それなりに精度も良いはず！<a href="https://t.co/U7gClRxqm6">https://t.co/U7gClRxqm6</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1030664724038336512?ref_src=twsrc%5Etfw">2018年8月18日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">音声からの文字起こしは、Google Cloud Speech-to-Textの変換精度が向上したみたいなので試してみる<a href="https://t.co/iZECMAGVd9">https://t.co/iZECMAGVd9</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1029273238830907392?ref_src=twsrc%5Etfw">2018年8月14日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Google Cloud Speech-to-Textのプレミアムなvideoモデルはまだ日本語サポートされてなかった😇😇😇 <a href="https://t.co/6pV012q3Pd">https://t.co/6pV012q3Pd</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1029291062517329920?ref_src=twsrc%5Etfw">2018年8月14日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">こればっかりはしょうがないので、ベータ版（v1p1beta1）のdefaultモデルで文字起こし精度が改善されるか確認中🥺</p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1029293381409681408?ref_src=twsrc%5Etfw">2018年8月14日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Google Cloud Speech-to-Textのdefaultモデルの場合は全然精度変わらんかったわ🙄<br>videoモデルの日本語サポートが入るのを待つしかないなぁ🥴</p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1029307723945369600?ref_src=twsrc%5Etfw">2018年8月14日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


残念ながら現時点では日本語ではまだ高精度なvideoモデルは使えませんでしたが、
今後、日本語でも高精度なvideoモデルが使えるようになることに期待ですね！！


## 最後に

まずはぜひAIメーカーを使って、AIで使い倒してみてください！

■AIメーカー
https://aimaker.io/

AIの可能性を機械学習に携わっている一部のエンジニアの人だけでなく、みんなでAIをさわってみることからはじめましょう！
そのためのツールとして、とりあえず「AIメーカー」を使って遊んでみてほしいです。

もっとみんながAIを気軽にさわれるようにすることで、こんなことに使えるんじゃないかと新たなアイディアが生まれることを期待しています。
あなたのちょっとしたアイディアが世界を変えるかもしれません！


ただ、「AIメーカー」はまだまだ構想の一部しかできていないので、僕も頑張ってこれからもっと機能を追加していきたいと思っています。
「みんなのAIプラットフォーム」となれることを目指します！


<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">AIメーカーでオープンイノベーションを！！<br>みんなのAIプラットフォームとして自分の考えている構想、実現したいことをまとめましたので、ぜひご覧ください！<br>（あと、1いいねで600いいね😀）<br>on <a href="https://twitter.com/Qiita?ref_src=twsrc%5Etfw">@Qiita</a> <a href="https://t.co/73fNAWyBtz">https://t.co/73fNAWyBtz</a><a href="https://twitter.com/hashtag/AI%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC?src=hash&amp;ref_src=twsrc%5Etfw">#AIメーカー</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1028299281139023872?ref_src=twsrc%5Etfw">2018年8月11日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


AIメーカーに少しでも興味をもって頂けましたら、ぜひフォローやいいね、リツイートで応援お願いします！

* Twitter： [@2zn01](https://twitter.com/2zn01)
* note： [@2zn01](https://note.mu/2zn01)

##### ・文字起こし

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">みんな～！「AIメーカー」で文字起こし機能をリリースしたよー！<br>以下の方法で簡単に文字起こしを試せるので、ぜひ使ってみて～！！<br>📺YouTubeから文字起こし<br>🔗画像、音声、動画から文字起こし<br>🎙️録音で文字起こし<br><br>AIをうまく使って少しでも面倒な作業から解放だぁ～！<a href="https://t.co/qo13Wo6Yli">https://t.co/qo13Wo6Yli</a> <a href="https://t.co/gsRigVROnK">pic.twitter.com/gsRigVROnK</a></p>&mdash; 2z＠みんなのAI「AIメーカー」開発中 (@2zn01) <a href="https://twitter.com/2zn01/status/1030652280914173953?ref_src=twsrc%5Etfw">2018年8月18日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

##### ・画像認識

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">今話題のAIをweb上で誰でも気軽に作れる「AIメーカー」を開発しました！<br>①AIに覚えさせたいタグを入力<br>②タグから自動で画像データを収集<br>③AIがデータから学習<br>の３ステップで誰でも簡単にAIを作れます！<br>動画では手相占いのAIに挑戦！<br>みんなもAIを作って遊んでみてね！<a href="https://t.co/66DFU7GRZ2">https://t.co/66DFU7GRZ2</a> <a href="https://t.co/ie1LmioyA1">pic.twitter.com/ie1LmioyA1</a></p>&mdash; 2z＠AIメーカー (@2zn01) <a href="https://twitter.com/2zn01/status/1019741210217365504?ref_src=twsrc%5Etfw">2018年7月19日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>