ロボットと共に

Life with Robot

C#でMicrosoft『Bing Text To Speech API』で音声合成を試してみる

FaceAPIに続いて、BingSpeechAPIのText To Speech、所謂音声合成を試してみました。
BingSpeechAPIの追加は、適当に追加でBingSpeechを検索したら、追加してAPIキーを取得します。

こちらのサンプルコードをそのまま使用して直ぐに動きました!!
サンプルコードはこちらをご覧ください。

github.com

TTSProgram.cs」上の80行目に"Your api key goes here"にキー1を入力したらサンプルTextの音声合成が作成されて、音声もスピーカーから出力されました。

下記を編集すると音声合成の内容や言語がからります。

  • 109行目「Text = "Hi, how are you doing?",」:音声合成内容
  • 112行目「Locale = "en-US",」:言語の選択
  • 115行目「VoiceName = "Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)",」:話者の選択

Bing Text To Speech APIリファレンスを確認しながら編集ください。

"en-US"」を「"ja-JP"」にして、「"Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)"」を「"Microsoft Server Speech Text to Speech Voice (ja-JP, Ayumi, Apollo)"」にすると日本語の女性バージョンで音声合成されます。また「Ayumi」の箇所を「Ichiro」にすると日本語の男性バーション音声合成されます。

 

最後に

サンプルソースコードは、あくまでも参考としてご利用下さい。また、各種ライブラリのライセンスにも目を通して、ご利用下さい。
ご利用した方は、コメント頂けると個人的に励みになります。

C#でMicrosoft『Face API』で顔認識を試してみる

Microsoftから提供されているクラウドサービスAzureにあるCognitive Services APIには、顔認識や音声認識、Bing検索エンジンなどMicrosoftの技術が存分に使えて嬉しいサービスです。

提供さてれいるAPI

特に気になるサービスとして2つ

  1. Speaker Recognition API」の音声認証
    話者認証、話者識別とトンデモナイ機能が使える!!
  2. Computer Vision API」の画像分析
    状況認識("プール""泳いでいる""水""男""人間"など画像・映像から状況キーワードを抽出してくれる。)、文字認識(テキストから手書きまで抽出してくれる。)とこちらもトンデモナイ機能がある。

それ以外にも顔認証、感情検出、翻訳機能、商品推薦など面白い機能が多くGoogle以上の技術力のアピールポイントが大きですw

こちらのサービスを利用するには、Azureの登録が必要です。

今回は、はじめてなのでFaceAPIをC#で簡単なものをサンプルとして書いてみました。

Azureの使い方は、ググって見て下さい。

利用方法

簡単な流れです。

  1.  Azureの登録
  2. Azureダッシュボードから「Cognitive Services」を登録
  3. Cognitive Services」からAPI種類「Face API」を選択
    ※サーバ先は自由に選んでも問題ないですが、リクエスト時にURLが異なります。
  4. リソース管理→キー→キー1を利用・コピペします

詳しくはこちらをご覧ください。

Face API - V1.0リファレンス

こちらの「Open API testing console」から自分の取得したAPIキーをテストすることができます。

  1. 私の場合は、サーバ先としてアジアだったのでsoutheastasiaを選択します。
  2. Query parametersはデフォルトのまま利用しますので、すべてRemoveボタンを押して削除します。
  3. Headersは、URLから画像取得する場合場「application/json」で、Ocp-Apim-Subscription-Keyにコピペしたキー1を入力します。
  4. Request bodyのJSON文の
    {
    "url":"http://cdn-ak.f.st-hatena.com/images/fotolife/f/famirror/20151213/20151213235438.jpg"
    }
    を入力します。※画像URLは適当に
  5. 最後にSendボタンを押します。
  6. ResponseStatus 200 OKと正しく返ってきたら登録した情報は問題なしです。
    {
    "faceId": "cc45325e-01ec-4e36-a069-8e700b913f2b",
    "faceRectangle": {
    "top": 94,
    "left": 319,
    "width": 75,
    "height": 75
    }
    }
    とサンプル画像の結果がこちらです。

実際に動かしてみた

以下は、動かしてみたサンプルコードです。

サンプルコード

URLは下記に書き換えて下さい。

なお、Content-Typeを「application/octet-stream」に書き換えて、rs.Writeに書き込むバイナリデータをURL先してのJSON分から画像データを読み込んでバイナリーにした記述にするとローカルで読み込んだ画像で顔認識した結果が返ってきます。
画像データのバイナリへの変換は下記を参照下さい。

 

robot-egg.hatenablog.com

 

実行結果

Response:
[{"faceId":"cc45325e-01ec-4e36-a069-8e700b913f2b","faceRectangle":{"top":94,"left":319,"width":75,"height":75}}]

と「Open API testing console」と同じ結果になりました。

最後に

Microsoftサンプルソースを豊富に用意されています。

github.com

他にもたくさんの方がサンプルソースを後悔されていましたが、即座に真似すれば動かせる感じではありませんでしたので、今までこちらで作っていたAPIC#サンプルベースに今回作ってみたら、思いの他にすんなり行きました♪

サンプルソースコードは、あくまでも参考としてご利用下さい。また、各種ライブラリのライセンスにも目を通して、ご利用下さい。
ご利用した方は、コメント頂けると個人的に励みになります。

C#とドコモAPI「雑談対話API」を試してみる

今回はタイトル通りC#でドコモAPI「雑談対話API」を試してみたいと思います。
ドコモAPI「雑談対話API」は、NTTドコモdocomo Developer supportから提供されているAPIです。

提供さてれいるAPI

  • 雑談対話:自然な会話をします。
  • シナリオ対話:フローチャートに沿った流れのある対話をしてくれます。
  • 知識Q&A:今知りたいことにピンポイントで答えます。

利用方法

  1. 新規アカウント登録
  2. 使用したいAPI登録

詳しくはこちらから参考にして下さい。

dev.smt.docomo.ne.jp

実際に動かしてみた

以下は、動かしてみたサンプルコードです。

サンプルコード

実行結果

3回実行してみました。それぞれ違った正しい返答を返してくれていますが、適用感が強い返しで面白いです。雑談対話APIはなかなか面白そうですねw

1回目

{"utt":"あらこんにちは","yomi":"あらこんにちは","mode":"dialog","da":"0","context":"9thN6csXAcbqHXqNHgk6Ww"}

2回目

{"utt":"うっす","yomi":"うっす","mode":"dialog","da":"6","context":"WYdp5aFfsRUoHPMr15Yh6g"}

3回目

{"utt":"こんあり","yomi":"こんあり","mode":"dialog","da":"0","context":"TtEaB0tWxu--xp_x6OJBdw"}

商用利用に関して

APIの商用利用はこちらにまとまったものが記載されています。

割りと利用しても大丈夫な感じを受けましたが、実際に商用利用を考えている方は一度お問合せした方が無難ですねw

dev.smt.docomo.ne.jp

最後に

ドコモAPIは割りとすんなり利用できましたが、一部音声合成などは自分のスキル不足でよくわからなかったです...
あんまり情報ソースが少ないと感じました。特にC#でやっている方は見当たらなかったです。一番簡単そうな雑談対話APIでやってみましたが、動いてよかったです。 

サンプルソースコードは、あくまでも参考としてご利用下さい。また、各種ライブラリのライセンスにも目を通して、ご利用下さい。
ご利用した方は、コメント頂けると個人的に励みになります。