声音共享装置、终端及声音共享方法与流程

文档序号:15159411发布日期:2018-08-14 09:55阅读:325来源:国知局

本发明的实施例涉及一种在提供网络会议等服务的语音通信系统中共享声音的技术。



背景技术:

网络会议(webconferencing)是通过互联网主持实时会议(meeting)、开会、演示(presentation)、教育等的在线服务。通常,如果在进行这种网络会议的过程中共享语音内容、图像内容等,则对会议的进行有很大的帮助,因此,目前进行着用于内容共享的多样的尝试。

然而,在以mpeg-4等形式共享预先准备的视频等内容的情况下,存在着除了现有的语音信道以外还需要在发送人和接收人侧分别独立地配备用于流式传输(streaming)的装置及用于播放流式传输的音频数据的播放器的繁琐性。并且,在此情况下,存在着无法共享通过网页浏览器等而已经开始进行流式传输的视频等的问题。

并且,作为用于共享内容的另一方案,还包括捕获从操作系统向音频渲染驱动器(audiorenderdriver)传递的数据并传递给对方的方式,但是在此情况下,捕获的数据中还包括由对方传递过来的语音数据,因此存在着对方还会再次听到自己说出的声音的问题。并且,为了解决这种问题,曾经提出过一种利用声学回声消除器(aec:acousticechocanceller)而从捕获的数据中去除对方的语音数据的方案,但是在这种情况下,可能发生要共享的声音(即,捕获的数据)的失真现象。

[现有技术文献]

[专利文献]

韩国公开专利公报第10-2009-0103953号(2009.10.01)



技术实现要素:

本发明的实施例提供用于提供一种在本地机器和远端机器通过网络连接的环境下有效地共享声音的手段。

根据本发明的示例性的实施例,提供一种声音共享装置,所述声音共享装置包括:变更模块,将本地机器(ocalmachine)的默认音频渲染驱动器(defaultaudiorenderdriver)由第一音频渲染驱动器变更为第二音频渲染驱动器;捕获模块,捕获向所述第二音频渲染驱动器传递的音频数据;以及混合器,将从通过网络而与所述本地机器连接的远端机器(remotemachine)接收的第一语音数据或者通过所述本地机器的麦克风输入的第二语音数据与捕获到的所述音频数据进行混合(mixing)。

所述混合器可以向所述第一音频渲染驱动器输出混合所述第一语音数据和所述音频数据的混合数据。

所述第一音频渲染驱动器可以是用于驱动所述本地机器的扬声器的实际音频渲染驱动器(actualaudiorenderdriver),所述第二音频渲染驱动器可以是用于驱动虚拟扬声器(virtualspeaker)的虚拟音频渲染驱动器(virtualaudiorenderdriver)。

混合所述第二语音数据和所述音频数据的混合数据可以通过所述网络而被发送到所述远端机器。

所述声音共享装置还可以包括:重采样器(resampler),将捕获到的所述音频数据的采样率(samplingrate)变更为所述第一音频渲染驱动器的采样率或者所述第二语音数据的采样率。

根据本发明的另一示例性的实施例,提供一种包括上述的声音共享装置的终端。

根据本发明的另一示例性的实施例,提供一种声音共享方法,所述声音共享方法在计算装置中执行,所述计算装置具备一个以上的处理器以及用于存储由所述一个以上的处理器执行的一个以上的程序的存储器,其中,所述声音共享方法包括如下的步骤:在变更模块,将本地机器的默认音频渲染驱动器由第一音频渲染驱动器变更为第二音频渲染驱动器;在捕获模块,捕获传递到所述第二音频渲染驱动器的音频数据;以及在混合器,将从通过网络而与所述本地机器连接的远端机器接收的第一语音数据或者通过所述本地机器的麦克风输入的第二语音数据与捕获到的所述音频数据进行混合。

所述声音共享方法在进行混合的所述步骤以后,还可以包括如下的步骤:在所述混合器,向所述第一音频渲染驱动器输出混合所述第一语音数据和所述音频数据的混合数据。

所述第一音频渲染驱动器可以是用于驱动所述本地机器的扬声器的实际音频渲染驱动器(actualaudiorenderdriver),所述第二音频渲染驱动器可以是用于驱动虚拟扬声器(virtualspeaker)的虚拟音频渲染驱动器(virtualaudiorenderdriver)。

可以混合所述第二语音数据和所述音频数据的混合数据通过所述网络而被发送到所述远端机器。

所述声音共享方法在进行混合的所述步骤之前,还可以包括如下步骤:在重采样器,将捕获到的所述音频数据的采样率(samplingrate)变更为所述第一音频渲染驱动器的采样率或者所述第二语音数据的采样率。

根据本发明的实施例,可以利用虚拟音频渲染驱动器而从根源上分离由终端自身产生的音频数据和通过声音共享装置传递的语音数据,据此,能够不发生回声和声音失真而容易地共享声音。并且,在此情况下,能够通过现有的语音信道来共享声音,并且不需要用于共享声音的追加的信道。因此,能够节约用于共享声音的网络带宽(networkbandwidth),并且能够最小化所传递的包(packet)的数量,从而减少服务器的负荷。

附图说明

图1是用于说明在语音通信系统中使用的环回捕获接口(loopbackcaptureinterface)的示例图。

图2是用于说明在根据本发明的一实施例的终端中捕获音频数据的过程的示例图。

图3是用于说明在根据本发明的一实施例的终端中对捕获的音频数据进行处理的过程的示例图。

图4是示出根据本发明的一实施例的声音共享装置的详细构成的框图。

图5是用于说明根据本发明的一实施例的声音共享方法的示例性的流程图。

图6是举例说明包括适合在示例性的实施例中使用的计算装置的计算环境的框图。

符号说明

10:计算环境12:计算装置

14:处理器16:计算机可读存储介质

18:通信总线20:程序

22:输入输出接口24:输入输出装置

26:网络通信接口102、202、402:声音共享装置

104、204:媒体播放器106、206:网页浏览器

108、208:操作系统110:默认音频渲染驱动器

112:默认扬声器200:终端(本地机器)

210:第一音频渲染驱动器212:第二音频渲染驱动器

214:扬声器216:麦克风

218:编码器220:打包器

222:解码器302:变更模块

304:捕获模块306:重采样器

308:混合器310:发送模块

400:另一终端(远端机器)

具体实施方式

以下,参阅附图而对本发明的具体实施形态进行说明。为了有助于对本说明书中记载的方法、装置和/或系统的全面理解,提供以下的详细说明。然而,这只是示例,本发明并非局限于此。

在说明本发明的实施例的过程中,如果判断为对有关本发明的公知技术的具体说明有可能对本发明的要义造成不必要的混乱,则省略其具体说明。并且,后述的术语作为虑及本发明中的功能而定义的术语,其可能因使用者、运用者的意图或惯例等而不同。因此,要将贯穿整个说明书的内容作为基础而对其进行定义。具体说明中使用的术语仅用于记载本发明的实施例,其绝非限定性术语。除非明确不同地使用,否则单数形态的表述包括复数形态的含义。在说明中,“包括”或“具有”之类的表述用于指代某些特性、数字、步骤、操作、要素及其一部分或者组合,不应解释为将所记载项以外的一个或者其以上的其他特性、数字、步骤、操作、要素及其一部分或组合的存在性或者可存在性予以排除。

图1是用于说明在语音通信系统中使用的环回捕获接口(loopbackcaptureinterface)的示例图。在本发明的实施例中,语音通信被使用为将语音通话、多方语音会议等基于网络来实现的多样的种类的基于音频的通信系统统称的含义。并且所述语音通信系统不限于只使用音频的通信系统,还可以包括双方视频通话、多方视频会议等将音频作为通信方法的一部分而包含的情形。即,本发明的实施例不限于具有特定种类或方式的通信系统。

参照图1,语音通信的参加者所使用的本地机器(localmachine)中可以存在与声音播放相关的各种应用程序或硬件装置。作为一例,所述本地机器可以配备声音共享装置102、媒体播放器104、网页浏览器106等。声音共享装置102作为具备用于多方语音通信的专用应用程序的硬件装置或者用于执行上述应用程序的计算机可读记录介质,可以向操作系统108传递针对从远端机器(remotemachine)接收的对方的语音数据的播放请求。并且,媒体播放器104可以向操作系统108传递终端内的针对第一音频数据的播放请求,而且网页浏览器106可以向操作系统108传递针对线上的第二音频数据的播放请求。所述第一音频数据例如可以是存储于终端的音乐文件,第二音频数据例如可以是可在线播放的声音内容。

操作系统108可以将所述语音数据、第一音频数据和第二音频数据混合(mixing)而向默认音频渲染驱动器(defaultaudiorenderdriver)110传递,而且默认音频渲染驱动器110可以向默认扬声器112传递混合所述语音数据、第一音频数据和第二音频数据的混合数据。之后,默认扬声器112可以输出所述混合数据。在此,默认音频渲染驱动器110意味着本地机器内的一个以上的音频渲染驱动器中的设定为所述本地机器默认使用的音频渲染驱动器,而且默认扬声器112意味着本地机器内的一个以上的扬声器中的设定为所述本地机器默认使用的扬声器。

此时,操作系统108可以提供环回捕获接口(loopbackcaptureinterface)。应用程序开发者可以设计为能够通过由操作系统108提供的环回捕获接口来捕获向默认音频渲染驱动器110传递的声音。

然而,在使用所述环回捕获接口的情况下,除了第一音频数据和第二音频数据以外,通过声音共享装置102传递的对方的语音数据也被混合而被捕获到。如果与对方共享通过上述方式捕获到的混合数据,则对方会再次听到自己所说的声音。即,在此情况下会发生回声(acousticecho)现象。

图2是用于说明在根据本发明的一实施例的终端200(即,本地机器)中捕获音频数据的过程的示例图。如图2所示,根据本发明的一实施例的终端200中可以存在与声音播放相关的各种应用程序或者硬件装置。作为一例,所述终端200可以具备声音共享装置202、媒体播放器204、网页浏览器206等。如上所述,声音共享装置202可以是具备用于多方语音通信的专用应用程序的硬件装置或者用于执行所述应用程序的计算机可读记录介质。并且,媒体播放器204和网页浏览器206可以向操作系统208传递针对各种音频数据的播放请求。

并且,在根据本发明的一实施例的终端200中可以设置有第一音频渲染驱动器210和第二音频渲染驱动器212。在此,第一音频渲染驱动器210可以是用于驱动终端200的扬声器214(硬件装置)的实际音频渲染驱动器(actualaudiorenderdriver),并且第二音频渲染驱动器212可以是用于驱动虚拟扬声器(virtualspeaker)的虚拟音频渲染驱动器(virtualaudiorenderdriver)。第二音频渲染驱动器212例如可以与用于多方语音通信的专用应用程序一同由服务器(未示出)部署(distribute)而设置于所述终端200。另外,在设置第二音频渲染驱动器212之前,第一音频渲染驱动器210可以被设定为终端200的默认音频渲染驱动器(defaultaudiorenderdriver)。

声音共享装置202在共享声音时可以将终端200内操作系统208的默认音频渲染驱动器由第一音频渲染驱动器210变更为第二音频渲染驱动器212。作为一示例,声音共享装置202可以根据用户的请求而执行用于所述多方语音通信的专用应用程序,从而开始声音共享服务,并且在开始所述服务时,可以将所述默认音频渲染驱动器由第一音频渲染驱动器210变更为第二音频渲染驱动器212。在此情况下,除了声音共享装置202内的应用程序意外的其他应用程序,例如,媒体播放器204、网页浏览器206等可以向作为默认音频渲染驱动器的第二音频渲染驱动器212传递要播放的音频数据,例如,第一音频数据、第二音频数据等。此时,声音共享装置202可以将从另一终端(未示出)即远端机器接收的对方的语音数据以原样输出到第一音频渲染驱动器210。

此后,声音共享装置202可以捕获向第二音频渲染驱动器212传递的音频数据。作为一例,声音共享装置202可以利用所述环回捕获接口来捕获向第二音频渲染驱动器212传递的音频数据(例如,第一音频数据和第二音频数据)。在此情况下,从终端200产生的所有的音频数据可以在根源上与通过声音共享装置202传递的语音数据分离。因此,捕获到的音频数据中不包括对方的语音数据,并且声音共享装置202可以通过网络而向远端机器发送捕获到的所述音频数据。所述远端机器可以通过所述网络而与终端200(即,本地机器)连接。在此,所述网络例如可以是3g或lte网络等移动通信网、有线和无线互联网等可进行包通信(packetcommunication)的所有种类的通信网络。

如果与对方共享通过如上所述的方式捕获到的音频数据,则不会发生回声(acousticecho)现象。并且,在终端200通过麦克风(未示出)而从用户接收音频数据的情况下,声音共享装置202可以将所述语音数据与捕获到的音频数据混合而生成混合数据,并且可以向远端机器发送所述混合数据。

并且,声音共享装置202可以将捕获的音频数据与从远端机器接收的对方的语音数据混合而向第一音频渲染驱动器210输出。如上所述,由于第二音频渲染驱动器212是虚拟音频渲染驱动器(virtualaudiorenderdriver),所以不会与实际的扬声器214连接。因此,声音共享装置202将捕获的音频数据与从远端机器接收的对方的语音数据进行混合,并向第一音频渲染驱动器210输出,而且第一音频渲染驱动器210可以向扬声器214传递混合捕获的音频数据和对方的语音数据的混合数据。之后,扬声器214可以输出所述混合数据,并且用户能够听到所述混合数据。

图3是用于说明在根据本发明的一实施例的终端200中对捕获的音频数据进行处理的过程的示例图。在此,第一语音数据是从通过网络而与本地机器连接的远端机器接收的对方的语音数据,图3的a部分所图示的混合数据是向本地机器的用户提供的数据。并且,第二语音数据是通过本地机器的麦克风输入的用户的语音数据,而且图3的b部分所图示的混合数据是向对方(即,远端机器的用户)提供的数据。此时,假设由终端200产生的音频数据被传递至第二音频渲染驱动器212,并且向第二音频渲染驱动器212传递的音频数据通过环回捕获接口被捕获。

参照图3的a部分,解码器(decoder)222可以对从远端机器接收的第一语音数据进行解码。并且,由于第一音频渲染驱动器210的采样率(samplingrate)和第二音频渲染驱动器212的采样率可能不同,所以重采样器(resampler)306可以将捕获到的音频数据的采样率变更为第一音频渲染驱动器210的采样率。之后,混合器308可以将通过解码器222的第一语音数据和通过重采样器306的音频数据混合而生成混合数据,并向第一音频渲染驱动器210输出所述混合数据。第一音频渲染驱动器210可以向扬声器214传递所述混合数据。扬声器214可以输出所述混合数据,并且用户能够听到所述混合数据。

并且,参照图3的b部分,麦克风216可以从本地机器的用户接收第二语音数据。并且,由于第二音频渲染驱动器212的采样率和通过麦克风216输入的第二语音数据的采样率可能不同,所以重采样器306可以将捕获到的音频数据的采样率变更为第二语音数据的采样率。之后,混合器308可以将输入到麦克风216的第二语音数据和通过重采样器306的音频数据混合而生成混合数据,并且可以将所述混合数据输出到编码器(encoder)218。编码器218可以对所述混合数据进行编码并传递至打包器(packetizer)220。打包器220可以打包被编码的混合数据。之后,各个包可以通过连接终端200(即,本地机器)与远端机器的网络(例如,现有的语音信道)而被发送到远端机器。在此,所述语音信道可以是与发送第一语音数据的语音信道相同的语音信道。

图4是示出根据本发明的一实施例的声音共享装置202的详细构成的框图。如图4所示,根据本发明的一实施例的声音共享装置202包括变更模块302、捕获模块304、重采样器306、混合器308以及发送模块310。

变更模块302将终端200(即,本地机器)的默认音频渲染驱动器由第一音频渲染驱动器变更为第二音频渲染驱动器。如上所述,第一音频渲染驱动器210可以是用于驱动终端200的扬声器214的实际音频渲染驱动器,并且第二音频渲染驱动器212可以是用于驱动虚拟扬声器的虚拟音频渲染驱动器。在此情况下,除了通过声音共享装置202传递的语音数据以外的其他所有的音频数据均可被传递至作为默认音频渲染驱动器的第二音频渲染驱动器212。

捕获模块304捕获向第二音频渲染驱动器212传递的音频数据。作为一例,捕获模块304可以利用环回捕获接口而捕获向第二音频渲染驱动器212传递的音频数据。在此情况下,从终端200产生的所有的音频数据均可从根源上与通过声音共享装置202传递的语音数据分离。

重采样器306调整捕获到的音频数据的采样率。作为一示例,重采样器306可以将捕获到的音频数据的采样率变更为第一音频渲染驱动器210的采样率。作为另一示例,重采样器306可以将捕获到的音频数据的采样率变更为第二语音数据的采样率。

混合器308将捕获到的音频数据和语音数据混合而生成混合数据。作为一示例,混合器308可以将从远端机器接收到的第一语音数据和捕获到的音频数据混合而生成混合数据,并向第一音频渲染驱动器210输出所述混合数据。作为另一示例,混合器308可以将捕获到的音频数据和通过本地机器的麦克风输入的第二语音数据混合而生成混合数据,并向编码器218输出所述混合数据。

发送模块310向远端机器发送通过编码器218和打包器220的混合数据的各个包。此时,发送模块310可以通过提供用于多方语音通信的专用应用程序的服务器而向远端机器发送所述各个包。在此,各个包可以通过连接终端200(即,本地机器)与远端机器的网络而被发送到远端机器。

图5是用于说明根据本发明的一实施例的声音共享方法的示例性的流程图。在图示的流程图中,将所述方法分为多个步骤而记载,然而至少一部分步骤可更换顺序执行,或者与其他步骤结合而一起执行,或者被省略,或者被分为细分的步骤而执行,或者可附加未图示的一个以上的步骤而执行。

并且,虽然未在附图中示出,但是声音共享装置202可以根据用户(例如,用户a)的请求而执行由服务器提供的用于多方语音通信的专用应用程序,从而开始声音共享服务,并且在开始所述服务时可以将本地机器200的默认音频渲染驱动器由第一音频渲染驱动器210变更为第二音频渲染驱动器212。在图5中,假设本地机器200的默认音频渲染驱动器已经由第一音频渲染驱动器210变更为第二音频渲染驱动器212。以下,根据本发明的一实施例的声音共享方法的详细流程如下。

在s502步骤中,远端机器400的声音共享装置402从用户b接收第一语音数据的输入。

在s504步骤中,远端机器400的声音共享装置202向本地机器200的声音共享装置202发送第一语音数据。此时,远端机器400的声音共享装置402可以通过服务器而向本地机器200的声音共享装置202发送第一语音数据。

在s506步骤中,媒体播放器204向作为默认音频渲染驱动器的第二音频渲染驱动器212传递音频数据。另一方面,在图5中,为了便于说明而图示为媒体播放器204产生音频数据,但是还可以在非媒体播放器204的其他模块产生音频数据,在此情况下,也能够同样地执行所述s506步骤。

在s508步骤中,声音共享装置202捕获传递至第二音频渲染驱动器212的音频数据。作为一示例,声音共享装置202可以利用环回捕获接口来捕获传递至第二音频渲染驱动器212的音频数据。

在s510步骤中,声音共享装置202将第一语音数据和捕获到的音频数据混合而生成混合数据,并向第一音频渲染驱动器210输出所述混合数据。

在s512步骤中,第一音频渲染驱动器210向扬声器214传递所述混合数据。

在s514步骤中,扬声器214输出所述混合数据。据此,用户a能够听到所述混合数据。

在s516步骤中,麦克风216从用户a接收第二语音数据的输入。

在s518步骤中,声音共享装置202将第二语音数据和捕获到的音频数据混合而生成混合数据。

在s520步骤中,声音共享装置202向远端机器400的声音共享装置402发送所述混合数据。此时,声音共享装置202可以通过服务器而向远端机器400的声音共享装置402发送所述混合数据。并且,所述混合数据可以通过连接本地机器200和远端机器400的网络(例如,现有的语音信道)而被发送到远端机器400的声音共享装置402。

在s522步骤中,远端机器400的声音共享装置402可以向远端机器400的扬声器(未示出)传递所述混合数据,并且远端机器400的扬声器可以输出所述混合数据。据此,用户b能够听到所述混合数据。

图6是用于举例说明包括适于在示例性实施例中使用的计算装置的计算环境10的框图。在图示的实施例中,各组件(component)除以下说明之外可以具有与此不同的功能以及能力,而且除了以下说明的之外还可以包括追加的组件。

图示的计算环境10包括计算装置12。在一个实施例中,计算装置12可以是终端200、声音共享装置202或者被包含在声音共享装置202中的一个以上的组件。

计算装置12包含至少一个处理器14、计算机可读存储介质16以及通信总线(bus)18。处理器14可使计算装置12根据上文中所提到的示例性的实施例而操作。例如,处理器14可执行存储于计算机可读存储介质16的一个以上的程序。所述一个以上的程序可以包含一个以上的计算机可执行指令,所述计算机可执行指令可构成为:在由处理器14来执行的情况下,使计算装置12执行根据示例性的实施例的操作。

计算机可读存储介质16以能够存储计算机可执行指令乃至程序代码、程序数据和/或其他适合的形式的信息的方式构成。存储于计算机可读存储介质16中的程序20包含可由处理器14执行的指令集。在一实施例中,计算机可读存储介质16可以是存储器(随机存取存储器等易失性存储器、非易失性存储器或者这些存储器的适当的组合)、一个以上的磁盘存储设备、光盘存储设备、闪速存储设备、除此之外的可由计算装置12访问并能够存储所期望的信息的其他形式的存储介质或者这些的适合的组合。

通信总线18用于将包括处理器14、计算机可读存储介质16的计算装置12的其他多样的组件相互连接。

计算装置12还可以包含提供用于一个以上的输入输出装置24的接口的一个以上的输入输出接口22以及一个以上的网络通信接口26。输入输出接口22以及网络通信接口26连接到通信总线18。输入输出装置24可以通过输入输出接口22而连接到计算装置12的其他组件。示例性的输入输出装置24可以包括:指点装置(鼠标或者触控板(trackpad)等)、键盘、触摸输入装置(触摸板或者触摸屏等)、语音或者声音输入装置、多样的种类的传感器装置和/或拍摄装置等的输入装置;和/或诸如显示装置、打印机、扬声器和/或网卡(networkcard)等的输出装置。示例性的输入输出装置24可以作为用于构成计算装置12的一组件而被包含在计算装置12的内部,也可以作为区别于计算装置12的独立的装置而连接到计算装置12。

以上,通过具有代表性的实施例而对本发明进行了详细的说明,然而在本发明所属的技术领域中具有基本知识的人员可以理解上述的实施例可在不脱离本发明的范围的限度内实现多种变形。因此,本发明的权利范围不应局限于上述的实施例,本发明的权利范围需要根据权利要求书的范围以及与该权利要求书的范围均等的范围来确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1