语音合成开源框架,语音合成模块

  语音合成开源框架,语音合成模块

  如果您需要将OMCS集成到软件系统中,以增加视频通话或视频会议的功能,您需要重点关注以下问题。

  1.服务器的两种集成方法

  (1)在现有的服务器进程中托管OMCS服务器:只需在当前的服务器程序中创建一个新的MultimediaServer实例,它需要使用一个TCP端口。

  (2)OMCS框架提供的OMCS服务器程序独立部署:独立部署可以有效的将视频流量和业务逻辑分离,使得业务逻辑的处理不会因为视频流量而延迟。

  2.关于用户管理

  因为OMCS没有特定的业务逻辑,其服务器上用户管理的本质只是标记用户是否在线。这个OMCS是内置的,它不需要与现有的系统有任何关系。

  但是MultimediaServer会通过构造函数注入的IUserVerifier接口来验证登录用户的账号密码是否合法。

  3.连接状态同步

  一般集成OMCS后,客户端会有两个TCP连接,一个连接(连接A)指向应用服务器(比如ESPlus server),另一个连接(连接B)指向OMCS服务器。那么,客户端是在线还是离线状态呢?有两种常见的策略。

  (1)应用服务器的连接是主要的。

  客户端的状态主要是连接。例如,当与应用服务器的连接断开时,客户端将显示为“离线”,当与应用服务器的连接成功时,客户端将显示为“在线”。

  如果采用这种策略,在编程时,客户端通常会在成功登录应用服务器(即调用IMultimediaManager的Initialize方法)后连接到OMCS服务器,所以可能会有一个时间差——即应用服务器已经成功连接,而OMCS服务器还没有连接。这个间隙的存在可能会导致一个新的情况:如果其他来宾想在这个间隙访问当前客户端的多媒体设备,将返回TargetUserOffline的结果,连接失败。出现这种情况时,作为客人的客户端用户会疑惑:看到对方在线,却连接了对方的多媒体设备,返回TargetUserOffline,这是怎么回事?针对这种新情况,我们可以将连接器的WaitOwnerOnlineSpanInSecs属性设置为稍大的值,比如10秒,以便等待作为所有者客户端的多媒体管理器初始化成功。

  (2)考虑应用服务器和多媒体服务器的连接。

  我们还可以使用更安全的策略,即只有当A连接和B连接都正常时,客户端才“在线”。一旦这些连接中的任何一个断开,客户端状态将变为“离线”。这样就不会出现上面这种状态不同步的差距造成的情况。

  策略(1)和(2)各有利弊。使用策略(1),客户端的登录会更快,但是会出现两个连接状态不一致导致的各种问题;策略(2)不会出现连接不一致的问题,但是登录会比较慢,因为只有两个连接都成功,多媒体管理器初始化后,才会进入“在线”状态。当然,除了这两种常用的策略,我们还可以根据项目的具体需求,采用更适合的方案。

  就我们的经验来看,连接是主要的连接,即以连接的状态作为当前客户端是否在线的依据。当A连接断开时,说明客户端离线,此时应该主动断开B连接。

  4.使用OMCS时,建议采用“短连接”方案。

  “短连接”方案的含义是客户端启动时,只与应用服务器通信。当两个客户端需要视频时,它们同时连接到OMCS服务器进行视频通话。视频结束后,他们都与OMCS服务器断开连接。

  “短连接”方案可以动态选择OMCS服务器。基于此,实现OMCS视频服务器的集群和负载均衡非常简单。

  -

  下载OMCS的免费版本和演示源代码。

  阅读OMCS发展手册系列的更多文章。

语音合成开源框架,语音合成模块