見出し画像

しゃべった声を文字にして英訳する

マイクでしゃべった声を文字にして、それを英語に翻訳する仕組みを作りました。(しゃべった声を文字にすることを、音声認識、文字起こしといいます)

しゃべった音声を文字起こししたり、日本語を外国語に翻訳するのは、インターネットにもそれぞれやってくれるサイトがあって、そのサービスを使うことはできます。しかし音声認識して文字起こしをして、それをコピーして、翻訳サービスに貼り付けて翻訳して、また翻訳結果をコピーして・・・というのは面倒です。入力と最終出力が決まっているので、各機能を組み合わせて一気通貫でやる仕組みにしたらいいのです。

しゃべった声を文字にして、それを英語に翻訳する仕組みを作ったのですが、想像力を膨らませていくといろんなことができそうなで、夢があります。ここから先につないでいろいろやれます。例えば、音声合成を使って英語で喋らせてドラえもんで出てきた「ほんやくコンニャク」のリアル版にしたり、ChatGPTで要約することもできます。

仕様
1.開始ボタンをクリックしてマイクに向かってしゃべる。
2.マイクの音声が途切れたら、音声を自動認識して文字起こしをする。
3.文字になった文章を英訳して表示する。

動かしてみる

起動するとブラウザに画面が表示されるので、マイクを選びます。PC本体に付いているものや、有線の入力などが出てきますが、私の使っているPCはデスクトップでありそれに接続されているUSBのWebカメラのマイクを使います。

起動してマイクを選択する

マイクが選択できたら、開始ボタンをクリックします。リスニング中と下に出るので、マイクに向かってしゃべります。記事を作っているときは暑かったので「7月に入って今日も晴れて暑いです。お昼ご飯に冷やしラーメンを食べたいです。」とマイクに話しかけました。

開始しておしゃべり中

話し終わってマイクの音が無音状態になると、音声認識に移ります。認識中と表示され、音声がGoogleのサーバに送られて音声認識を行います。音声認識に移るタイミングですが、自動車が通って走行音がが入ったりするとマイクに音が拾われるので、その間しゃべっていなくてもリスニング中の状態が続きます。

音声認識中

音声認識が終わって発話が文字に変換されたら、それをDeepLという翻訳専門の会社のサーバに送って、日本語を英訳します。英訳はあっという間に終わります。

音声認識結果を英訳

最後に一連の動きです。私が使っている画面録画のソフトウェアではここで作ったものを録画しながらマイクの音声を録音することができなかったので、音声なしになります。

音声認識と英訳

技術情報

  • python

  • Google Speech-to-Text

  • DeepL API

評価

上に紹介した例は、意識して滑舌よくしゃべったので文字起こしは100%の精度でした。噛んでしまうと意図しない文で認識されることがあります。人の場合は言い間違いは無意識に切り捨てて聞き取りをしますが、愚直に認識が行われます。結論として、音読をする感じで文章を読むとよい精度で文字起こしができます。

英訳は日本語の方がおかしくなければ、十分なレベルです。さすが現在最も精度がよいといわれているDeepL社です。上には書きませんでしたが別の言語への翻訳も可能です。自分が分かる中国語も大丈夫でした。繁体字(旧字体)の台湾語は残念ながらサポートされていませんでした。

課題

この仕組みは自分でゼロから作るのではなく、レゴブロックのような組み合わせて作っていくので、音声認識や翻訳の精度は採用するサービスの制約を受けます。ここではサービス以外のところについて書きます。

  1. ひとつの段落くらい長くしゃべったときにも対応したい。今のプログラムは毎回上書きされて残らないので、途中で音声認識が入っても結果が残るようにしたい。

  2. マイクでしゃべるときに周囲のノイズが邪魔になることがある。ノイズキャンセリングや発話が途切れた後の待ち時間といった機能も入れたい。

  3. 画面録画でPCの音声とマイクの音声を同時に録音できるようにしたい。直接関係はないが、今後必要性が出てくると思われるため、できるようにしておきたい。

昨年実はChatGPTと音声でおしゃべりができるものを作りました。当時は面白いなと思ったものの、ビジネス面ではニーズがほとんどないだろうと考えていました。しかしyoutubeなどで英会話の先生方が、ChatGPTと英語で会話をする学習法を紹介する動画がアップされるようになり、英語ではニーズがあったのだと自分の見る目のなさにがっかりしました。
組み合わせ次第で面白くて、役立つものが作れると思うので、想像力を働かせてやってみたいと思います。

この記事が気に入ったらサポートをしてみませんか?