質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Q&A

解決済

1回答

1397閲覧

websocketで、音声データを順次おくり、レスポンスも順次受け取りたい

ffshtt

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

0グッド

0クリップ

投稿2019/06/20 12:59

編集2019/06/20 13:46

こんばんは。
私はc#で、websocket対応の音声認識APIで文字起しをしようとしています。
このAPIによると、順次音声データ(バイナリ)を送れば、その時点での認識結果を返してくれます。
私は以下のようなコードで連続的にデータを送っているのですが、途中の認識結果を得ることができず、
最終の認識結果しか得られません。
原因としてこのデータを送る部分が不適切なのかと思っていますが、どう悪いのかよくわかりません。
websocketに関してあまり詳しくなく、おかしな部分があるのだと思いますが、ご教授のほどよろしくお願いします。

csharp

1static async Task Send(ClientWebSocket ws) 2 { 3 ArraySegment<byte> closingMessage = new ArraySegment<byte>(Encoding.UTF8.GetBytes( 4 "{\"command\": \"recog-break\"}" 5 )); 6 using (FileStream fs = File.OpenRead("voice.raw")) 7 { 8 byte[] b = new byte[3200]; 9 while (fs.Read(b, 0, b.Length) > 0) 10 { 11 ws.SendAsync(new ArraySegment<byte>(b), WebSocketMessageType.Binary, true, CancellationToken.None); 12 } 13 await ws.SendAsync(closingMessage, WebSocketMessageType.Text, true, CancellationToken.None); 14 } 15 }

最後に、音声データの終了をAPIに知らせるために、recog-breakコマンドを送っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/06/20 13:13

途中でawaitしてませんがそれ以上にそのapiの仕様が知りたいのですが
ffshtt

2019/06/25 14:53 編集

最初、awaitで書いていたのですが、それでもうまくいかなかったです。。
guest

回答1

0

ベストアンサー

javascript

1// client -> server 2{ 3 "command": "recog-break" 4}

これを送らないといけないのでは?

投稿2019/06/20 13:23

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ffshtt

2019/06/20 13:45

失礼しました。 ↑のコードでは、recog-finishになっていますが、 これはteratailに転記するときにミスしたもので、 実際のコードではrecog-breakになっております。 すみません。直しておきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問