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 PM コメントをどうぞ

2017 Java アプリケーション・サーバ使用状況結果報告

先日は、「2017年度版:Java サーバの利用状況のアンケートのお願い」
にご協力いただきまして誠にありがとうございました。

アンケートの結果を集計しましたので報告いたします。

Questionair of Java App Server Usage

今年は、アプリケーション・サーバの利用状況に関するアンケートで 514 票、MSA フレームワーク系で 155 票の結果をいただく事ができました。ご協力いただいた全ての皆様誠にありがとうございました。
下記に結果を報告します。(ちなみに、昨年の合計は 669 票でした。昨年の投票結果はこちら

Java App Server Usage 2017
Java App Server Usage 2017
Java App Server Usage 2017

昨年と比較すると、投票数が若干減っているため純粋に比較する事はできませんが、全体的にアプリケーション・サーバの利用は減少している傾向に見受けられます。一方で投票数が減ったにもかかわらず、組み込みコンテナ、特に Spring Boot だけで昨年の 76票 → 102 票に増加したのは特筆すべき点です。

2017 Java Framework Usage
2017 Java Framework Usage

世界的に増加傾向が見受けられる、Spring Boot をはじめとする組み込みコンテナ系の需要は、マイクロサービスの導入・検討により、今後ますます高まると想定しますが、さまざまな情報を入手し効果的な活用をぜひ行ってください。

下記の今年の de:code や Java Day Tokyo でも発表をしましたが、筆者は安易なマイクロサービスに警鐘を鳴らしたいと思います。モノリシック・アプローチからマイクロ・サービス化においては、様々な点で考慮が必要です。どこから始めればよいかわからない方は、まずは下記の発表資料をご参照いただきご検討・導入をすすめていただければと思います。


関ジャバでの発表でも申し上げたのですが、「マイクロサービスにする事でハッピーになるのではなく、マイクロサービスを導入することでハッピーにする」という感覚が必要かと思います。

Happy Life with Java !!

2017年7月18日 at 11:18 AM 2件のコメント

2017年度版:Java サーバの利用状況のアンケートのお願い

サーバ・サイド Java の開発・運用に携わっていらっしゃる方に質問がございます。現在、サーバ・サイドのJava 開発環境もしくは本番環境で、どのサーバ (Webコンテナ、アプリケーション・サーバ)をご利用いただいているか理解したいと考えております。そこで、大変恐れ入りますが下記のアンケートにご協力いただけないでしょうか。

昨年 (2016年) は、669名の方にご協力いただきました。ご協力誠にありがとうございました。
2016年版:Java サーバ利用状況アンケート結果の公開

今年のアンケートの締め切りは 7/12(水) 18:00 までとさせていただきます。
昨年も1週間のアンケート期間だったため、公平をきすためにも同じ1週間で実施いたします。また、速報は同日開催する「関ジャバのナイトセミナー」で発表します。

複数ご回答いただいてもかまいません。個人情報は取得しませんし、この結果を売買に使うことも決してありません。利用状況について正しく把握することで、現在のサーバ・サイドのトレンドについて理解できるとともに、結果を本ブログで公開することで他の皆様にも有用な情報になるのではないかと想定しております。締め切り後に、再利用可能な結果(順位、投票数、パーセント)として公開します。

また、上記で「組み込みコンテナ(実行可能 jar)に移行済み」と回答した方のうち、どのフレームワークへ移行したかを教えていただけないでしょうか?移行していない場合は、下記にはお答えいただかなくて結構です。

本データは、日本全体における利用状況の実データにはならないと思いますし、市場調査会社がだす結果とは異なると思いますが、それでも Java コミュニティ参加者や、本ブログをご覧いただいている皆様の近辺のデータを集めることができるのではないかと想定しております。また、昨年のデータとの比較もできるかと思います。この1年で日本の状況は変わっているのでしょうか?とても楽しみにしています。

※ これは#てらだよしお 個人的なお願い事であり、所属企業や団体からの問い合わせではないことをご理解いただければ誠に幸いです。

2017年7月5日 at 8:00 AM

de:code 2017 ご参加ご検討のお願い!!(DevOps トラックにかける意気込み)

今年も、日本マイクロソフトの年次最大イベント de:code 2017 を 2017年5月23日(火)~24日(水)の2日間、ザ・プリンス パークタワー東京で開催する事になりました。

オフィシャルサイト:https://www.microsoft.com/ja-jp/events/decode/2017/

本イベントで、私は DevOps トラックを担当させていただく事になりました。そして本ブログ・エントリはDevOps トラックのセッション構成を考えた経緯や、このトラックに対するあつい思いを伝えたいと思います。

まず経緯ですが
私はエバンジェリストとして、昨年から今年にかけて日本全国を回り、多くのお客様や開発者の皆様とお会いしてきました。お届けする内容は DevOps だったりマイクロサービスに関する内容が多くありました。また実際に、お客様とハックフェストやワークショップも行ってきました。
その中で、数々のフィードバックをいただきましたが、次のような内容が少なからずございました。

  • DevOps の前に TDD もしていない、やり方がわからない、追加コードのメリットがわからない
  • DevOps の前にアジャイルもできていない、メリットがわからない、WF が
  • DevOps どこから始めれば良いかわからない、怖い、製品売りにきた?
  • 現状の仕事環境・組織では移行するのは困難
  • そもそも未来の話をしている、現実感がない

もちろん、すでにメリットを理解し実現されている日本企業もたくさんございますし、実際にそうした企業の方々やエンジニアの皆様もたくさん存じ上げております。

しかし「Microsoft Love Developers !!」です。
今一度、興味があるけど実現ができていないという組織や個人に対して、基本的な所からたった2日間でしっかりと学べる環境を提供したいと考えました。

今回想定するセッション参加者の対象:

  • 技術的、組織的になんらかの改善に取り組みたい方
  • 最近 DevOps という名前を良く耳にし興味を持っているエンジニアやリーダ
  • 実際にやってみたいけど、どこから手をつけていけば良いのかわからないエンジニア(開発者・運用者)
  • 組織を効果的に改善したいと考えているリーダ、CxO
  • サービス提供までのリードタイムを劇的に短縮したい企業・組織・グループ

このトラックから得られる物
どうすればできるのか、何から始めれば良いのか、そしてどうすれば現場のエンジニアがよりハッピーになれるのかを、このトラック全体を通じお届けしたいと考えております。
つまり、今年の DevOps トラックは最新情報だけではなく、今改めてしっかりと DevOps を実現するまでの道のりであったり、実現する事のメリット、さらにクラウド上でアプリケーションを構築・提供していくためのベストプラクティスをしっかりとお届けしようと考えております。

そして今回このトラック構成を実現するために、各分野で第一人者の皆様にお声がけし、ご登壇者様の皆様すべてに上記のメッセージを伝えました。そして皆様にご賛同、ご快諾いただきご登壇いただける事になりました。お忙しい中、ご快諾いただきました全てのご登壇者の皆様に心よりお礼申し上げます。

セッション一覧をご覧いただければ、お分かりいただけるかと思いますが「この製品を使えば DevOps です!!」なんて話はございません!!それぞれの企業に適した改善のやり方があるかと思います。開発者、運用者、リーダの方々、それぞれの皆様にコンテンツをご用意しています。どうぞご参加ください。

このブログをご覧いただく開発者の方で、自分のリーダに意識改革をしてもらいたい方、組織を変えたいと思われている方、もしくはリーダのお立場の方で、開発者に意識改革をして欲しいと思われている方、コミュニティ活動に参加していない社員の方に対して、しっかりと今の当たり前を知って欲しい方。

もしかしたら、マイクロソフトのイベントだったら会社が許してくれるという場合もあるかと思います。マイクロソフトで、面白いのやっているので参加しては如何ですか?とどうぞ会社内でオススメください。

日本のエンジニア・企業、そしてサービスにとって、今ある姿をなんらかの形で改善、そして自らがハッピーになるための2日間になれば誠に幸いです。

DevOps 関連トラックの歩きかた
開発者・運用者向け

IT リーダの方向け

2017年4月13日 at 8:59 PM

冬はお部屋の温度・湿度に気をつけましょう!!

今日の福岡でのナイトセミナー(JAZUG福岡(ふくあず) 2017#1)のデモの最終調整を宿泊先のホテルでしています。今日のお話しも盛りだくさんなのでデモ内容をちょっとだけ先出したいと思います!!

頻繁に出張にいく私たちはホテルに宿泊する事が多いのですが、どのホテルもとても乾燥しています。そこで風邪をひかないように、お風呂場にお湯を張ったりして温度・湿度に気をつけたりしてます。

一般的に冬の湿度は40%-50%が最適?!(インフルエンザ・ウィルスも死滅?!)との事なので、ホテルの部屋の温度と湿度変化を、持ってきた Raspberry Pi の温度・湿度センサーを使って実際に測って 50% まであげてみました!!

Power Bi で温度・湿度データの変化をグラフ表示していますが、内部的には Raspberry Pi から取得したデータを、Azure IoT Hub に送信し、その後 Stream Analytics 経由でリアルタイムに Power Bi に送っています!!

最初の方で1回だけ突出して出ている波形は、温度・湿度センサーに直接手で触った時のデータです
Stream Analytics と Power Bi で簡単にこうしてリアルタイムのデータ変化を観れるのは嬉しいですね!!

よし!!これでこの部屋の湿度は最適になったぞ!!

2017年2月9日 at 5:49 PM

Microsoft Tech Summit 開催(申し込み締め切りは明日まで)

来週、Microsoft Tech Summit が開催されますが、急遽私のセッション・タイトルとアジェンダを変更する事になりました。ただ今 Web サイトの修正依頼をしている状況でございます。

お申し込みの締め切りは明日 10月28日(金)まででございます。どうぞよろしくお願いします。

今回セッション調整により、私のセッションの横で、佐藤 直生 (@satonaoki) さんが、「Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発」というセッションをおこなう事になりました。Azure Service Fabric については、同じ時間帯で佐藤さんが詳しくご紹介いただける事になったため、かつ Pivotal Cloud Foundry が本日 GA になった事もあり、最新の情報をお届けするために、今回私は Pivotal Cloud Foundry on Azure の話しに集中することにしました。

また今回、急遽調整を行い Pivotal ジャパン株式会社の、槙さん(@making)をお招きして二人でセッションを行う事になりました。



タイトル:
「Pivotal Cloud Foundry on Azure で実現する Java マイクロサービス開発のご紹介」

アジェンダ:
2016 年 10 月 26 日(米国時間)Azure 対応の Pivotal Cloud Foundry が正式にリリースされました。これを記念して、本セッションは Pivotalジャパン株式会社をお招きしての特別セッションを開催します。
Pivotal Cloud Foundry は、世界的な企業で採用され、クラウド・ネィティブなプラットフォームとして、DevOps、マイクロサービスを実現するための便利な機能を提供しています。マイクロサービスを実現するための環境を、一から自分の手で作るには大変な労力や時間を要します。Pivotal Cloudn Foudry を利用することで、いち早くセキュリティに強いマイクロサービス・プラットフォームを利用することができるようになります。
本セッションは、Pivotal Cloud Foundry on Azure で、マイクロ・サービスを実現するための方法をデモを交えながらご紹介します。



追伸:
OpenShift も、すでに私の Azure 環境上で構築をしているのですが、Red Hat さんは、別途ご登壇いただきますし、近いうちに Red Hat さんと協業イベントを実施いたしますので、今回は Cloud Foundry に話しを絞る事にいたしました、どうぞご了承ください。

皆さまのお越しを楽しみにしております。

2016年10月27日 at 6:46 PM

皆んな大好き Excel !! Excel REST API Java サンプルアプリケーション

2016 年 8 月初旬 Office 365 の Excel REST API が正式にリリースしました。
アナウンス:「Announcing the general availability of the Microsoft Excel API to expand the power of Office 365

上記により、Graph API と呼ばれる REST API を使用して、Office 365 の OneDrive に存在する Excel ファイルを操作できるようになります。
Excel 操作用の Graph API

※ REST API で利用できるため、プログラミング言語を問わず任意の言語で操作ができるようになっていますので、Java 以外のプログラミング言語でもどうぞお試しください。

今回、私は上記の REST API を利用して Java のサンプル・コードを作成しました。
サンプル・コード:「GitHub : Office-365-Excel-REST-API-for-Java」
またサンプル・コードがどのように動作するのかをわかりやすくするため、サンプル・アプリケーションのデモ動画も撮りましたので、どうぞ下記のデモ動画もご覧ください。

今回作成したサンプル・アプリケーションは Java EE 7 のアプリケーションとして作成しました。そこで、Java EE 準拠のアプリケーション・サーバであれば、いずれの環境でも動作します。私は、Payara Server 4.1.1.162 (GlassFish) で動作確認をしていますが、少しの変更を行うだけで、アプリケーション・サーバではなく、Servlet Container(Tomcat/Jetty) でも動かすことができます。

追記:
Office 365 を無料でお試しいただく為の設定手順 (ステップ・バイ・ステップの画面ダンプ) や Tomcat 用の設定方法に関しては 「GitHub : README.md もしくは README-4-Tomcat.md」に記載しています。

アプリケーションの実装の詳細
このサンプル・アプリケーションは Java EE 7 で実装しています。

まず、GUI (フロントエンド) のビュー・テクノロジーとして JavaServer Faces (PirmeFaces) を利用しています。しかし、フロント技術はこのサンプルでは重要でありません。慣れ親しんだフロント・テクノロジーをご利用ください。

実際の、Excel 操作の要は、com.yoshio3.restclient パッケージ配下で実装しています。
特に com.yoshio3.restclient.services サービスが重要で、Excel REST API で用意されている各種機能(REST 呼び出し)をラッピングしたメソッドを実装しています。
また、Excel REST API のリクエスト・ボディ、もしくはレスポンス・ボディに含む JSON のデータは、すべて com.yoshio3.restclient.jaxb.entities パッケージ配下のクラスにマッピングしています。例えば、Excel のワーク・シートやテーブルを取得した際に取得できる情報はすべて com.yoshio3.restclient.jaxb.entities.excel パッケージに含まれています。このマッピングした Java オブジェクトを操作することで、実際の JSON データを意識せずにプログラムができます。

また、Office 365 に接続するためには、Azure Active Directory で認証を行う必要があります。今までは、「Microsoft Azure Active Directory Authentication Library (ADAL) for Java」を利用してきました。しかし、今回 Azure AD で認証を行うために必要最低限の軽量な Servlet Filter (AzureADAuthServletFilter) を独自に実装しました。

Servlet Filter : AzureADAuthServletFilter.java
アクセス・トークン:AccessToken.java
Auth サービス: OAuth2Service.java

まだ一部実装が足りない部分(TODO)はありますが、Azure AD の認証のフローをご理解頂く上で、このサーブレット・フィルタはご参考いただけるのではないかと思います。また、Servlet Filter なので認可はできませんが、Tomcat/Jetty のような Servlet Container でも動作します。認可が必要な方は、以前作成した「Azure AD 認証・認可サンプル」をご参照ください。

Java ユーザの皆様も、Office 365 の OneDrive に存在する Excel ファイルを直接 Java から操作してみませんか?

Have fan Excel with Java !!

2016年8月31日 at 8:00 AM

過去の投稿


Java Champion & Evangelist

ご注意

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

カレンダー

2017年9月
« 8月    
 123
45678910
11121314151617
18192021222324
252627282930  

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 998,349 hits

Feeds