我为这个蹩脚的标题道歉,但在努力寻找更好的标题后 15 分钟,我干脆放弃了。
想象以下场景:
- 用 C# 编写的桌面应用程序
A
会监听用户讲话,并在讲话发生时WAV
将文件转换为块 (byte[]
) A
然后需要将这些块发送到服务器B
(我们的 Windows 服务器),因为语音仍在发生- 服务器
B
等待所有块到达(在语音完成后),然后转身向服务器C
(第 3 方语音到文本识别引擎)发出一个 HTTP POST,其中包含语音的完整byte[]
表示 - 服务器
B
获取响应并对生成的字符串进行一些处理,然后将对象发送回桌面应用程序A
(可以是字符串或图像)
其中一项要求(粗体声明)是,为了提高效率,A
不应等待语音完成后才开始将块发送到B
.
我们整理了一个使用 TCP 套接字的测试解决方案(似乎工作正常),但由于我们使用套接字的经验很少,我们有点不情愿(不确定所有限制)。
有没有更好的建议来实现我们的目标?
PS:另一个需要确认的要求可能是A
用“非托管”C++编写的,这可能会阻止任何纯粹的.NET实现(比如WCF的双工服务?)