音声入力をテキストに変換する方法について


最近の動画配信サイト等では音声をテキストにしてテロップに出す方法をよく見かけるようになりました。

実際に、これらのテロップ文字は音声を聞きながら文字起こしをするという作業が必要で、大変な労力を要します。そのため、音声入力を直接テキスト文字に変換してくれる機能がとても役に立ちます。

今回はそういった音声入力テキスト変換機能ソフト・アプリについて少し取り上げてみました。

こういったことは非常に簡単にできるので知っておいて損はないと思います。

googleドキュメントの自動文字起こし機能

googleドキュメントの自動文字起こし機能は、グーグルが提供する無料のソフトウェアで、ネットにつながっていればどこでも利用することができ、回数や容量などの制限もありません。

文字起こしの結果は一字一句間違っていないというわけではないのですが、認識できるレベルです。

なお、googleドキュメントの音声入力を使うにはウェブブラウザにgoogle chromeを使う必要があります。

1.google chromeを開きます。(ない場合はPCにダウンロードします)

2.右上の「Googleアプリ」から「ドキュメント」を開きます。

3.Googleドキュメントの「ツール」→「音声入力」を選択します。

4.画面上にスピーカーのアイコンが表示されるので、それをクリックすると音声入力が開始されます。

5.下の状態で、音声出力と入力をつなぎ、音声ファイル(動画ファイル)を再生させると、Googleドキュメントは自動的に音声入力を開始し、音声がテキスト化されていきます。

録音状態がよければ精度の高いテキスト化が行えますが、手動での修正は必須です。

ライブ配信するなら音声認識字幕ちゃん

音声認識字幕ちゃんとは

「音声認識字幕ちゃん(西村良太)」のwebサイトで公開されている、Google Chromeを開いてURLを貼り付けるだけで、後はブックマークをしておけば、いつでもマイク入力音声を字幕として出力できるものです。

日本語から外国語への同時翻訳も可能ですが、PCのスペックが高くないとかなり厳しいようです。

音声認識を使うには

まずはGoogle Chromeを開いて音声認識字幕ちゃん(西村良太)のサイトに移動します。

次にアクセス ●以下URLをクリック!●から「ninsikichan」ページに移動します。

とりあえずこれだけでマイクの音声を字幕として出力できます。

設定を変更するには

設定の変更は「ninsikichan」URLの各項目を変更するだけです。変更を保存するときはページをブックマークしておくだけで大丈夫でした。

設定項目と初期値

  • 音声認識言語: recog=ja(対応言語での指定)
  • 翻訳先言語: trans=en
  • フォント: font=Meiryo
  • 背景色: bgcolor=lightgreen(色名での指定)
  • 文字サイズ: size=20(ptで指定)
  • 文字の太さ: weight=900(100〜900 で指定)
  • 文字色: color=white
  • 縁取りの色: st_color=red
  • 縁取りの太さ: st_width=2
  • 文字の位置: v_align=bottom(上付き:top,下付き:bottom)

翻訳を使うには

翻訳を使う場合には,google翻訳にアクセスするための自分用のkeyコードが必要になります。

1. https://script.google.com にアクセス

2.「新しいプロジェクトの作成」を押して新規作成

3.以下のプログラムで既存プログラムの内容を置き換える。書き換えた後は必ず保存します。

function doGet(e) {
  var p = e.parameter;
  var translatedText = LanguageApp.translate(p.text, p.source, p.target);
  return ContentService.createTextOutput(translatedText);
}

4.「デプロイ」→「新しいデプロイ」を選択

5.「種類の選択(歯車)」→「ウェブアプリ」を選択

6.設定は次のようにします。

  1. 「新しい説明文」には適当に 翻訳用 などにする
  2. 「次のユーザとして実行」は 自分 にする
  3. 「アクセスできるユーザー」は 全員 にする
  4. 「デプロイ」を押す

7.デプロイIDが表示されますので、その下にある「コピー」を押せば、IDをコピーできます。

8.コピーしたIDを「ninsikichan」URLの次の「gas_key=」の後に貼り付けます。

https://sayonari.coresv.com/ninshikiChan/text.html?gas_key=(コピーしたID)

オプションの設定がある場合は最後に&をつけて追加します。

https://sayonari.coresv.com/ninshikiChan/text.html?recog=ja&trans=en&bgcolor=lightgreen&size=20&weight=900&color=white&st_color=red&st_width=2&v_align=bottom&gas_key=(コピーしたID)

OBSで使うには

OBSで画面に字幕を表示させるためには Google Chrome で映し出された字幕をウィンドウキャプチャで取り込むようにします。

Google Chrome の「ハードウェアアクセラレーション」がオンになっていると、キャプチャできませんのでご注意を。

OBSでGoogle Chromeのウィンドウキャプチャを追加したら、右クリックして「フィルタ」を選択します。

フィルタ追加設定は一番下にある「+」をクリックします。

「クロマキー」を選択して設定をして閉じます。

字幕ウィンドウキャプチャは一番上にして緑色が透過しますので、字幕以外の下の映像が見えるようになります。

以上で同時翻訳が可能になりました。

ただし、状況によってはかなりの負荷がかかるようで、私はOBSを使っているときに何度もフリーズしてしまいました。

これでは普通に使うことができませんので、今後の課題です。

【追記】nvidiaドライバのインストール

同時翻訳の処理が重くなることの回避手段として「設定」→「出力」→「エンコーダ」の選択を変えるという方法があります。

設定のエンコーダはデフォルトで「x264」が選択されていますが、こちらはCPUの処理によるエンコード(符号化)ですので、全体の負荷が大きくなるためにフリーズを誘発する原因となっていたようです。

対処方法としては「x264」以外のグラフィックボードのエンコーダを選択することで、これによりCPUの処理を分散させるので、全体の負荷が軽減されフリーズしないことになります。

ただし、こちらの機能を使うためにはグラフィックボードのドライバをインストールして認識させる必要があります。

nvidiaドライバのインストール手順

現状のnvidiaドライバを確認します。

$ lspci -vnn

VGA の項目より グラッフィックボード の名称と使われているドライバ確認します。

「Kernel driver in use: nouveau 」は nvidiaドライバ が入っていないのでインストールする必要があります。

nvidiaドライバのリポジトリを追加します。

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update

ubuntu用のnvidiaドライバリストを入手します。

$ ubuntu-drivers list

以下がドライバリストになります。

この中から対応するドライバをnvidia公式サイトなどで確認してインストールします。

私の場合は「GeForce GT 710」ですので、以下のサイトから対応するドライバを探しました。

nvidia公式ドライバ

最新バージョンは465でしたが、今回は安定してそうな460をインストールしました。

$ sudo apt install nvidia-settings nvidia-driver-460

nvidiaドライバが入っているか確認します。

$ lspci -vnn

「Kernel driver in use: nvidia」に変わりました。

最後にOBSの設定を「x264」から「NVIDIA NVENC H.264」などに変更します。私の場合は、これでフリーズすることがなくなりました。

まとめ

今回調べたのは音声入力からの文字起こし方法ですが、まさか翻訳まで同時に行うことができるようになっているとは思っていませんでした。

twichやyoutubeなどは海外の人も見ることができる動画配信サイトですので、翻訳があるだけで海外の人に見てもらえる可能性が大幅にアップします。

そうすれば日本のことをもっと知ってもらえる機会も増えてきますので夢が拡がります。

ですので、こういった翻訳機能を作ってくださった方々に感謝します。

今回のことは皆さんに知っていただき、ライブ配信にチャレンジしてみることをお薦めしたいです。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)