はじめに
今年から Azure により深く関わることになった。
手始めに Cognitive Services の SpeechAPI でちょっとしたWebサービスをつくった。
PCで動作確認済み。
iPhone のMobileSafariではHTML5の音声入力が動かないので動作しない。
システム構成
趣味のサービスなのでコストがかからないように、いわゆるサーバーレスな構成。
- フロントは GitHub Pages で静的サイトホスティング
- バックエンドは Azure Function
- 英語の文章はスクレイピングして結果を TableStorage に保存
同時に QueueStorage にも登録 - Azure Function で Queue をトリガーに Cognitive Services の Text to Speech で音声化し、BlobStorage に保存
Azure について
Cognitive Services
サイトで試しに聴いてみればわかるとおり、Text to Speech で出力した音声は自然に聴き取れる。
一方、Speech Recognition は全然自分の英語を認識してくれないので評価しづらい。
英語が堪能な人に試してもらうと認識されるので、練習あるのみ。
Speech API が $4 per 1000 calls なので、API を軸にしたサービスでペイするのはなかなか厳しそう。
あくまでも既存のサービスの満足度を高めるために利用するのがベターそう。
Azure Function
全体的にすごくよい。
Function ごとにディレクトリ切って実装するだけなので簡単。
大半が WebApps と同じ感覚で使えるので学習コストが低くて済む。
単純に REST API を簡単に作れるだけではなく、Storage をはじめとした Azure のサービスとの連携が気持ちよくできる。
たとえば Queue と Table を入力に Blob へ出力するための設定は以下のような感じ。
{ "bindings": [ { "name" : "queueItem", "queueName" : "speech", "connection" : "{queue_accesskey}", "type" : "queueTrigger", "direction" : "in" }, { "name": "entity", "type": "table", "direction": "in", "tableName": "sentences", "partitionKey": "speech-eng", "rowKey": "{queueTrigger}", "connection": "{table_accesskey}" }, { "name": "outBlob", "type": "blob", "direction": "out", "path": "speechs/{queueTrigger}.wav", "connection": "{blob_accesskey}" } ], "disabled": false }
name
に指定した名前が実装する function のパラメータ名になる。
public static async Task Run( string queueItem, //in queue の binding TableEntity entity, //in table の binding Stream outBlob, //out blob の binding TraceWriter log) { //do something... }
公式ドキュメントでは functions-triggers-bindings のあたりを読むといろんなパターンが載っている。
おそらく厳しいが、DataFactory のように今後他のパブリッククラウドとも連携されたらいいなと夢が広がる。
悪い部分をあげるとささいなレベル。
ポータル上のエディタが不便(ローカルで書けばいい)とか、下に書いたハマりポイントがあった程度。
AzureFunctions で開発するときにハマったこと - Qiita
あとがき
サービス自体について思ってること
- もうちょっと練習に適した文章使いたい。けど本などの教材からパクるわけにもいかないので悩む。
サイトに載せていいようなまとまった資料あったらぜひ教えてください - 日本語訳くらいは表示しておきたい。
- 正答の精度もうちょっとゆるくしたい。もしくは精度自体表示する。
- 正答率表示は回答者いないとワークしないから後で実装すべきだった。
- というかスクレイピングによって出題が増え続けるのはよくない気がする
と書いてみたものの、こうしてブログ書くとあまりいじらなくなるのでやる保証はない。
- 作者: 國弘正雄,千田潤一,久保野雅史
- 出版社/メーカー: 講談社インターナショナル
- 発売日: 2004/03/12
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 43回
- この商品を含むブログ (96件) を見る