Archive for 2017年8月10日

Microsoft Translator Java WebSocket Application

(寺田が実装した Microsoft Translator Java WebSocket Application のソース・コードの入手先)

Microsoft Translator を利用したリアルタイム翻訳については、すでに様々なメディアで取り上げて頂いています。

最近では上記のような専用アプリだけではなく、 Microsoft Powerpoint のプラグインも提供され、プレゼン中にリアルタイム翻訳をする事もできるようになっています。こちらは、まだ実験中のプロジェクト製品ですので、現時点ではお試しの感覚で利用いただければと思いますが、これが成熟することで英語によるプレゼン発表もより理解しやすくなる日が、近い将来訪れるのではないかと思います。

この Microsoft Translator は、プログラミングをする事で、上記の Presentation Translator のように、様々な環境でリアルタイム翻訳を実現できるようになります。
プログラムを実装するための詳細は、Microsoft Translator Speech API リファレンス・ガイド をご覧ください。

かんたんに実装方法をご紹介します。

1. まず音声データを作ります。音声データは、サンプリング・レートが 16Khz で、モノラル、サンプル・ビット 16 bit の PCM 符号付きデータにする必要があります。もし、このフォーマットになっていない場合は、変換をして上記のデータを作成します。
2. WebSocket で Translator 専用の URL に接続します。
 その際、認証用の AuthToken を取得しAuthorizationヘッダに認証コードを付加し接続します。
3. WebSocket のサーバに WAV データを送信します。
4. 翻訳されたデータが JSON で返ってきますので onMessage() で翻訳データを受け取ります。

各プログラミング言語用のサンプル・コードがマイクロソフト本社より提供されていますので、下記をご参照ください。

さてここから、より Java 側の実装についてご紹介します。マイクロソフト本社から提供されている、Java のサンプルコードは下記に提供されています。
Java-Speech-Translate

上記のサンプル・コードは、あらかじめ HelloWorld.wav (PCM,16bit,16kHz,mono) ファイルを用意し、その音声データを Microsoft Translator に送信し、翻訳された結果を表示するようなプログラムになっています。

簡単な動作確認をする用途では上記のプログラムは有効です。しかし実際には、より大量の音声データを扱いたくなってまいります。また、最近の PC で音声データを作成すると、デフォルトでは、サンプリング・レートが 44.1Khz でステレオ・サウンドで WAV が作成される環境が多いかと思います。そこで、このような高品質でファイルサイズの大きなデータを、Translator に転送するために低品質に変換する必要があります。そのような場合、上記のサンプル・コードだけでは実装が不十分で、追加のコードが必要になってまいります。

そこで今回私は、上記とは別途 Java 用のサンプル・プログラムを実装しました。

私が作成した、アプリケーションの全ソースコードをアップロードしています。ソース・コードを入手後、プロパティ・ファイルにご自身専用のサブスクリプション・キーを入力し、ぜひお試しください。

2017年8月10日 at 5:27 午後


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2017年8月
 123456
78910111213
14151617181920
21222324252627
28293031  

カテゴリー

Twitter

  • RT @satyanadella: GitHub Copilot is the first at-scale developer tool, and today we're going further—bringing the power of Copilot past the… 8 hours ago
  • RT @seanjmullan: JDK 20 was released yesterday! Highlights of this release include further improvements that strengthen the default securit… 13 hours ago
  • RT @mkheck: Can’t get enough Spring content? Neither can I! That’s why I'm presenting "Build Better, Deploy Faster: Spring Boot + Spring C… 13 hours ago
  • RT @yuhattor: やばいのきました これからはエディターの外でも開発者の効率を爆上げします。まずはウェイトリスト登録! GitHub Copilot X👇 ●GPT4を採用 ●チャット/音声サポートでエディタでもChatGPTに似た体験 ●プルリクエストの文章自動生… 23 hours ago
  • RT @github: GitHub Copilot is already helping developers code faster in their IDEs. But what’s next? Our answer is GitHub Copilot X. It’s… 23 hours ago

clustermap

ブログ統計情報

  • 1,263,275 hits

RSSフィード

アーカイブ