PoC実績公開!Google Cloud Platform(GCP)を利用した翻訳アプリの実証実験
こんにちは。ベトナム拠点で開発マネージャーを担当している鍋山です。
生成AIの台頭により、昨年頃からAIを利用したアプリケーション開発や、システム化前のPoC実行についてのご相談が少しづつ増えてきました。我々もはじめての経験だったということもあり、お客様の事例をすぐに大きく増やすことはできかったものの、少しづつですが実際にお任せいただける機会が生まれてきました。
実際にサービス提供したPoCやR&D的な業務の内容については顧客情報ということもあり詳細な発信ができなかったのですが、今回、社内のPoCとして当社のR&DチームがGoogle Cloud Platform(GCP)を利用した翻訳アプリ開発を行いました。こちらについては社内の情報かつ一般的なAPIを利用したシンプルなPoCでもあり情報発信ができそう!
ということで今回はこの社内PoCについてご紹介いたします。
お役立ち資料の無料DL
PoC・MVP開発の成功事例集
PoC(概念実証)やMVP開発に向いているプロジェクトやWakka Inc.の該当サービスの特徴・事例をまとめたハンドブック。
開発の進め方や、事例を知りたい方にピッタリです。
PoCの目的
当社では日本・ベトナムにそれぞれ役割をわけて開発プロジェクトを推進していますが、拠点間のコミュニケーションはITコミュニケーターといういわゆる通訳が間に入って業務を進めています。
業務の流れとしても、日本側で開発の上流工程を行い、設計以降の製造をベトナムで行う分業体制となっていることから、設計書の翻訳や各種打ち合わせの通訳もほとんどの場合、ベトナム現地のITコミュニケーター(通訳)が行うことになります。
国際間で拠点がわかれている我々のような組織では、このITコミュニケーターの業務量や業務効率が全体の進捗に大きく影響を与えることになります。本来通訳や翻訳においては、ハイコンテクストな内容の翻訳・通訳、機械翻訳には難しいとされてきた設計書の翻訳などに絞られるのが理想ですが、両国ともに母国語をメインのコミュニケーション言語に利用していることから、簡単なメッセージやちょっとしたMTGにもITコミュニケーターの稼働を取られている状況が課題になっていました。
こうした状況を打破するために、AI翻訳などを利用してメッセージ自動翻訳やファイル翻訳、簡易MTGの通訳といった簡易的な業務を機械翻訳へと移行し、コミュニケーターのコア業務効率を向上させる試みとして今回のPoCを行うことになったというわけです。
今回、プロジェクトの進行方法としては、アジャイル開発手法を採用しています。
短いサイクルの各スプリント(1〜2週間ごと)の終わりに、実際に動作する成果物を提出し、社内にて継続的なフィードバックを行いながら改善検討を行うかどうかも含めて確認していくアプローチを取りました。
Google Cloud Platform(GCP)とは
Google Cloud Platform(GCP)は、Googleが提供するクラウドコンピューティングサービスです。多岐にわたるクラウドベースの計算、データストレージ、データ分析、機械学習などが内包されたPaasとなっています。
GCPはAPIの形でさまざまな機能を提供しており、これを利用することでデベロッパーは高度な機能をアプリケーションに組み込むことができます。
特に、今回利用する翻訳APIは多言語間のコミュニケーションを容易にするツールとしてかねてよりGoogle翻訳でも利用されてきたモデルであり、本アプリケーション開発に相性の良い可能性があったことからPoCでの利用対象として選択されました。
PoC実施計画
実施においては特定の機能を段階的に実証していくことにしました。それぞれスプリントの期間を設定し、エンジニアの中から対応できる人材をアサイン。
社内プロジェクトということもあり、通常業務の合間を縫っての実施となるためひとつひとつのスプリント期間は少し長めに設定。全6スプリントを以下のアウトプットを目指しスケジュールしました。
PoC実施結果
社内PoCであったこともあり各スプリントではメンバーの入れ替えやスケジュール変更などもありましたが無事終了することができ、各項目にて以下のような結果となりました。
スプリント1 テキスト翻訳
目標:GCPのAPIでテキストを翻訳する(日越、越日)
利用したAPI:Cloud Translation API
結果:GCPの翻訳APIにより日越間のテキスト翻訳ができた
問題点:とくになし
まず初期段階として基本的なテキスト翻訳機能の実装を目指します。
具体的には日本語からベトナム語、ベトナム語から日本語への翻訳能力を2週間の期間で検証しました。UIは皆使い慣れているGoogle翻訳と同様のものとしました。
スプリント2 ドキュメント翻訳
目標:GCPのAPIを使用しファイル翻訳する。対象はWord、Excel、PPT 、PDF。翻訳されたファイルの形式が変更されず、元の形式のままで保持される。
利用したAPI:Cloud Translation API
結果:ファイルのフォーマットを維持しながら翻訳ができた
問題点:一部のエレメントで翻訳がされない箇所があった詳細は以下の通り
- Word:図形、テキストボックス、データチャート
- Excel:図形、テキストボックス、データチャート、チャートタイトル、ファイルタイトル
- PPT:データチャート
- PDF:縦方向テキスト、文字間隔のあるテキスト、文字の色、データチャート、チャートタイトル
ステップ2では、Microsoft Officeの各種ファイルやPDFといった異なるフォーマットの文書の自動翻訳をPoC。
設計書などを執筆しプログラマにわたす我々の業務の中では、実務での利便性が叶うのかを確かめるための重要なステップです。
基本的にはファイルを維持したままファイル翻訳を実行することができましたが、オブジェクト全般の翻訳に苦労しました。以下画像のように図形を含むオブジェクトで未実行になるパターンや、縦書きテキスト、文字間隔の大きいテキストの翻訳では比較的多くエラーが発生する事象がありました。
スプリント3 翻訳トレーニング
目標:GCPの学習機能を使って翻訳モデルをトレーニングし、トレーニングされた後は会社の求める最適な翻訳をできるようになること。
利用したAPI:Cloud Translation API
結果:日本語・英語の言語ペアによるトレーニングができた。トレーニングしたモデルで翻訳すると意図通りの翻訳結果となった。コストは標準モデルに比べて高コストになる。
問題点:現在GCPでは日本語・ベトナム語の言語ペアでのトレーニングモデルをサポートしていないため、当社にマッチするトレーニングができなかった。
スプリント3はAIのトレーニングです。特定のジャンルで利用する専門用語や一般的にあまり利用されない単語や文脈を正しく論理的に翻訳できるように学習を行います。当社では日越語での多言語コミュニケーションが行われているため、同様のペアで学習実験を行いたかったのですが、GCPではまだサポートがされておらずだっため、今回は日英の言語ペアにてトレーニングし実験を行いました。結果としては意図した通りの翻訳結果を返すようになりましたが、今後は別AIなどを利用し日越をサポートしていきたいと考えています。
スプリント4 画像内文字の翻訳
目標:GCPのAPIを使用して画像内の文字列を認識し、翻訳された状態の画像を作成する。
利用したAPI:Cloud Translation API, Cloud Vision API
結果:画像内のテキストとそのテキストの位置を検出できた。
翻訳されたテキストを画像に貼り付けることができた。
問題点:翻訳されたテキストが画像上の不正確な位置に貼り付けられている。
画像内の何が文であるか確定するのは正確ではない。
互いに近くに配置されているテキストは1つの文とみなされる。
または、1つの文であっても途中に改行される場合は2つの別途な文とみなされる。
ロゴと文字を区別できていない。
スプリント2で問題となったオブジェクトや図形といったものと同様に画像内文字については課題が多く発生しました。画像内には様々なテキストや、テキスト情報を含むロゴなどが含まれます。
実用的なものにしていくためには、こうしたイレギュラーなケースをそれぞれ最適化する必要があるという見解となりました。
スプリント5 Google ドキュメント翻訳
目標:Google DocsのURLを受け取り、翻訳されたGoogleドキュメントURLを返すか、もしくは古いURLに直接挿入できるAPIを実装する。
Googleスプレッドシート、Googleドキュメント、Googleスライドを対象とする。
利用したAPI:Cloud Translation API, Google Drive API, Google Sheets API, Google Docs API, Google Slides API
結果:Googleスプレッドシートの翻訳ができた。ドキュメントのフォーマットが変更されず、元の形式のままで保持された。
翻訳できないエレメント等については、スプリント2と同じ。
翻訳されたGoogleドキュメントのURLを返すことができた。
問題点:Googleドキュメント、Googleスライドについては未検証
クラウド上の文書作業が主流となる現在ではGoogleドキュメントやスライド、スプレッドシートで自動翻訳が実務レベルで適用できるかどうかで業務効率が大きく変わります。スプリント5ではこうしたGoogle関連のオフィスサービスに適用させるためのPoCを行いました。
結果としてはOfficeシリーズと同様の問題、つまりスプリント2での問題とほぼ同じ結果になりました。図形オブジェクトや縦書きテキストなどに課題が残ります。
スプリント6 音声翻訳
目標:音声ファイルを取得し、翻訳するAPIを実装する。返す結果としては、翻訳されたテキストファイルおよび音声ファイルとする。
利用したAPI:Cloud Translation API, Speech To Text, Text To Speech
結果:音声ファイルを受取し、翻訳された音声ファイルを返すことができた。
音声ファイルからテキストを返すことができた。
問題点:雑音などが入ると、正しく翻訳されない。複数名での会話などは発言者を区別できない。
最後のスプリントでは音声翻訳です。昨今ではZoomやGoogleMeetにも英翻訳・字幕機能が実装されていたり、AIを利用した議事録機能を搭載したアプリケーションなども登場しています。当社でも実際のMTG現場ではITコミュニケーターが同時通訳する業務がありますので、これらの業務圧縮・最適化を目指すためのPoCです。
音声ファイルをアップすると翻訳された音声ファイルを返すという体験を構築しました。
大きな問題点としては、音声に雑音が入るとこれらがエラー要素になってしまい主音声が正しく翻訳されないパターンがあったことや、同ファイルに複数の人員の音声が入力されていた場合はこれを区別できないなどの課題が残りました。
さいごに
このように簡易的ではありますが、GCPを利用して当社の業務で利用するような翻訳業務をカバーするアプリのPoCを行ってきましたが、ここまで書いて来た通りそれぞれの工程で実用にはまだまだ課題の残る結果となりました。
特に我々の業務に当てはめたときに見逃せない課題としては、GCPが日越間のペア学習機能が実装されていないことです。これは小さな課題を解決する際に必ず学習モデルを構築していくことが求められる翻訳まわりのアプリケーションにおいてはクリティカルな部分となるため、残念ですが今後業務に利用していくことを考慮して、他のAIモデルや生成AIの利用も検討することになりました。まずは今回GCP利用に構築したUIをそのまま利用して、バックエンドをOpenAIのChatGPTに変更した実験を行います。
このように社内だけでなく昨今の生成AIの情勢から、様々なアプリケーションにAIモデルを実装していくご依頼や実績が増加しています。例として今回とりあげた翻訳だけではなく、様々な業務アプリケーションにAIを組み込んでいくPoCも計画していますので、あらためてご紹介ができると思います。
以下では当社でのPoC/MVP開発実績の資料を配布しています。もしご要望あれば以下よりDLください。
お役立ち資料の無料DL
PoC/MVP開発の成功事例集
PoC(概念実証)やMVP開発を検討中の方に向けたWakka Inc.での成功事例集です。
以下のような方にオススメです。
・新規事業でPoCやMVPを検討中の方
・PoC(概念実証)やMVP開発の進め方を知りたい
・PoC(概念実証)やMVP開発のコスト感を知りたい
日系オンラインリサーチ会社のCTOとしてベトナムチームを立ち上げ、Wakka Inc.のテクニカルマネージャーとして参画。現在はベトナム拠点で開発チームの標準化や社内のインフラ管理・ITプロジェクト統括をやっています。モットーは『みんなで頑張りましょう』