【開発秘話】学習パス機能開発の舞台裏!課題と共に成長するチーム | システム統括部_エンジニア
KIYOラーニング株式会社のページをご覧いただいている皆様こんにちは。技術広報メンバーの大原です。 開発秘話シリーズの第三弾となる今回はAirCourse(エアコース)の「 学習パス 」という機能をテーマにしました。 ▼AirCourseについて ...
https://www.wantedly.com/companies/kiyo-learning/post_articles/487867
KIYOラーニング株式会社のページをご覧いただいている皆様こんにちは。
技術広報メンバーの大原です。
開発秘話シリーズの第四弾となる今回はAirCourse(エアコース)の字幕機能がテーマです。
▼前回の記事はこちらから
※AirCourse(エアコース)
は、受け放題の動画研修がついたeラーニングシステム(LMS)です。
エアコースの字幕機能とは、エアコースのオリジナルコース作成時、アップロードした動画に字幕テキストの登録・設定・表示をおこなうことができる機能です。
※オリジナルコースは利用企業様が各種レクチャーやテスト、アンケート、提出課題を自由に組み合わせて、自社オリジナルなコースを作成できるものです。
この機能を利用することで、登録・設定をおこなった字幕テキストは受講者がコースを受講する際に動画上に表示され、音声と合わせて視聴することが可能です。
字幕の設定は次の3つの方法が用意されています。
自動生成では当社でも初めてとなるAIによる自動音声認識(文字起こし)サービスを活用していますので、今回は字幕機能の中でも自動生成にフォーカスしていきたいと思います。
開発に先立ち、まずは自動音声認識サービスの選定から始まりました。
選定基準として重要視したのは字幕ファイルの形式です。字幕ファイルにはいくつかの形式がありますが、エアコースで使用しているVideoプレイヤーに対応しているWebVTT(.vtt)形式のファイルを採用することが前提となりました。
自動音声認識サービスの候補と評価結果は次の通りです。
Amazon Transcribe
VTT形式に対応しており、比較的実装しやすい。他のAWSサービスと連携しやすい。
Speech-to-Text (Google)
VTT形式に対応しておらず、1文が長すぎるため実装が難しい。
Watson Speech to Text (IBM)
VTT形式に対応しておらず、意味のある句の終わりで文を区切ることが可能だが、長さの調整が難しい。
Whisper (OpenAI)
VTT形式にも対応していて、精度は高かったが、速度がサーバースペックに依存するため、自前でサーバーを用意する必要があり運用負荷が高い。(現在はAPIが公開されている)
以上の結果から、当社ではAmazon Transcribeを採用しました。
Amazon Transcribeは、音声やビデオをテキストに自動変換するAmazon Web Services(AWS)のサービスです。会議録音のテキスト化や音声データの分析など、様々な用途で利用されます。
また、こちらのページでは導入事例として様々な企業が紹介されています。なんとSlackもAmazon Transcribeを利用しているんですね!
入力ファイルと字幕ファイルのサポート状況は次の通りです。
入力ファイルの形式
mp3, mp4, wav, flax, ogg, amr, webm
字幕ファイルの形式
srt, vtt
エアコースの字幕機能開発プロジェクトのリーダーを担当したのはエンジニアの木村さんです。
▼木村さんのインタビュー記事はこちら
その木村さんにAmazon Transcribeを利用した字幕機能の開発をしてみてどうだったのかを聞いてみました。
まず、Amazon Transcribeについては当社で初めて利用するAWSサービスでしたが、木村さん自身も初めて触れてみた感想としては「特にハマるようなポイントはなく、使いやすかった」ということでした。
エアコースで扱う動画ファイルはHLS形式に変換されていますが、仕様変更やファイルの格納場所の変更といった理由から変換前のMP3形式のファイルが存在しない動画もあることがわかりました。そのため、HLSからMP3への一律変換が必要でしたが、この課題もAWSサービスの『AWS Elemental MediaConvert』を利用することで解決することができました。さらに『Amazon EventBridge』を使用することで複数ジョブを効率的に管理することもできました。これにより、ファイル変換から字幕ファイルの出力までをAWS上で完結することができ、非常に便利だったそうです。
出力される字幕ファイル(VTTファイル)も取り扱いやすい内容になっているため、エアコースのシステムへの統合は特に苦労しなかったようです。ただし、エアコース上で字幕の表示や編集を行うためのVue.jsを使用したクライアント側の開発は、最も大変だったようです。
動画ファイルの変換から字幕ファイルの出力までの処理時間に関しては、特に遅いということはありませんでした。そしてエアコースでは元々1時間以内の動画しか扱わない制約があり、さらに非同期かつ完了時にメール通知する仕様となっているため、字幕の自動生成は使い勝手の良い機能に仕上がったそうです。
今回のエアコースへの字幕機能の実装を通して、自動音声認識サービスの種類や特徴について知ることが出来ました。また、AIを使ったAWSの新たなサービスを導入することが出来た点に関しても当社にとって良い経験になったと思っています。
字幕機能により、聴覚障害者などの利用者がより効果的に動画コンテンツを利用できますし、字幕を提供することで学習者の理解度向上も期待できるようになったと思いますので、エアコースの進化を実感できました。
今後は、字幕編集画面の改善や自動生成の精度向上といった課題に取り組みつつ、他のサービスにも展開していきたいと考えています。