私はMicrosoft Bot Frameworkで作成されたボットを持っており、Skypeをチャンネルとして使用しています。ユーザーがモバイルアプリ(AndroidまたはiOS)のいずれかを使用して音声を送信してボットと話そうとすると、添付ファイルからオーディオを取得してBing Speech APIに送信して、それをテキスト。ボットフレームワークを使用しているときにBing Speech APIでSkypeオーディオ添付ファイルを使用するにはどうすればよいですか?
私はこれをやっているいくつかの問題を抱えています。私が信じる主な問題は、実際にはI have to send a WAVがBing Speech APIです。私は、ボットBuilderリポジトリでデモを読み、デモに次のコードがあります:私はSkypeのモバイルアプリ経由の音声を送信するとき、私は持っていません(私は、Androidでテストしています)しかし
var audioAttachment = activity.Attachments?.FirstOrDefault(a => a.ContentType.Equals("audio/wav"));
if (audioAttachment != null)
{
using (var client = new HttpClient())
{
var stream = await client.GetStreamAsync(audioAttachment.ContentUrl);
var text = await this.speechService.GetTextFromAudioAsync(stream);
message = ProcessText(activity.Text, text);
}
}
"audio/wav"ファイルタイプの場合、ファイルタイプ(ContentType)はちょうど "オーディオ"となります。
Postman(URLは次のようになります:https://smba.trafficmanager.net/apis/v3/attachments/0-eus-d1-0000000000000/views/original)を使用してボットステートマネージャーAPIでオーディオファイルを取得しようとすると、コンテンツタイプが「application/octet-stream
」になってしまいます。 MP3、WAV、または何でも。
私はポストマンの内部を見ることができますわずか数行はちょうどこのようなものです:
ftypmp42isommp42pmoovlmvhd_ _ @ymeta hdlrmdta + keysmdtacom.android.version%ilstdata7.1.1trak! \ tkhd_ _ @mdia mdhd_ _ D、hdlrsounSoundHandleminfsmhd $ dinfdrefurl STBL [stsdKmp4aD'esds @ ww0stts-stsz
I ReadAsStreamAsync
メソッドを使用してこのコンテンツをストリームにダウンロードし、この文字列を次のエンドポイントのBing Speech APIに渡します。
しかし、これは私が戻って得るものです:
{ "RecognitionStatus": "InitialSilenceTimeout"、 "オフセット":11000000、 "期間":0}
この場合、それは可聴音声であり、音声を検出しません。私が言ったように、私は問題がファイルタイプだと思う。 Skypeが使用するファイルタイプは何ですか?このファイルを使用してBing Speech APIを呼び出すにはどうすればよいですか?