一种声卡通信数据的检测方法及系统、对接收到的声卡通信数据进行检测的装置与流程

文档序号:17125227发布日期:2019-03-16 00:19阅读:314来源:国知局
一种声卡通信数据的检测方法及系统、对接收到的声卡通信数据进行检测的装置与流程

本发明涉及数据检测技术领域,特别是一种声卡通信数据的检测方法及系统、对接收到的声卡通信数据进行检测的装置。



背景技术:

usb声卡是市面上比较常见的电子设备,连接在电脑上便可以使用麦克风话筒进行录音,并使用扬声器进行声音播放。在开发声卡的过程中,声卡与主机的通信数据完整性是十分重要的,如果在传输过程中,发生了数据的丢失或者失真,会直接影响用户体验。

目前在开发过程中,常用的检测音频是否丢包的方法有两个,第一个方法是播放声音,麦克风拾音后会把音频传输至主机,主机通过录音软件进行录音再播放,通过人为地去听这段音频与播放的音频是否一致,用于判断是否有传输数据不正确的地方。第二个方法是播放扫频波,麦克风拾音后会将音频传输至主机,主机通过录音软件进行录音,通过人为地去观察音频的频谱图,由于扫频波的频率是连续的,所以如果有发生数据丢失或者不正确,会比较容易看得出来。但这两种方法存在以下弊端:

第一是都必须通过人为地去听或者看来判断,这种判断方式有会存在判断误差,比如当数据只丢失几个字节,人耳是比较难听得出来,不具有客观性;

第二是假如进行长时间的测试,人就得花很多时间去分析音频,浪费人力资源,效率低下。



技术实现要素:

为了解决上述问题,发明人经过研究发现usb声卡麦克风工作时,会先把声音音频通过adc变成数字,然后走uac协议把数字传到主机上,也就是说,声卡端与主机端进行交互时,传输的是数字信号。

基于该发现,发明人想到,在对声卡的数据传输性能进行测试的阶段,可以不采集声音进行测试,而是通过对uac填数据,这样就可以在主机端对接收到的数据进行自动化的精准判断,以解决现有技术存在的人工判断存在误差、效率低等问题。

根据本发明的第一个方面,提供了一种声卡通信数据的检测方法,包括如下步骤:

在声卡端,按照预定协议向主机写入测试数据;

在主机端,获取所述声卡端写入的测试数据,并按照预定协议对获取的测试数据进行解析,根据解析结果判断声卡通信数据的准确性。

根据本发明的第二个方面,提供了一种对接收到的声卡通信数据进行检测的装置,包括:

数据获取模块,用于根据检测指令,获取生成的相应音频文件;

校验模块,用于读取音频文件的内容,按照预定协议进行解析,根据解析结果确定所述音频文件的内容是否正确,并输出检测结果,其中,预定协议与相应的声卡端向主机写入数据的协议一致。

根据本发明的第三个方面,提供了一种声卡通信数据的检测系统,包括声卡和主机,其中,声卡包括

测试数据写入模块,用于根据接收到的主机端指令按照预定协议向主机写入测试数据;

主机包括

录音模块,用于获取声卡端写入的测试数据;

检测模块,用于按照预定协议对获取的测试数据进行解析,根据解析结果判断声卡通信数据的准确性。

根据本发明的第四个方面,提供了一种电子设备,其包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述方法的步骤。

根据本发明的第五个方面,提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

根据本发明提供的方法、装置及系统,可以实现发现细微的数据丢失问题,同时不需要花太多人力资源和时间去判断是否丢数据,全部软件实现,提高检测的效率和精准度,且这种客观的判断方式可以更加精准的检测问题和解决问题。

附图说明

图1为本发明一实施方式的声卡通信数据的检测方法程图;

图2为本发明一实施方式的对接收到的声卡通信数据进行检测的装置原理框图;

图3为本发明一实施方式的声卡通信数据的检测系统框图;

图4为本发明一实施方式的执行声卡通信数据的检测方法的电子设备原理框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明基于在测试阶段通过向uac写入测试数据的构思,来实现在主机端的自动检测判断。在具体应用中,写入测试数据可以是基于约定的协议,这样在主机端就可以基于该协议进行解析,以实现对数据是否准确的判断,示例性地可以是在对uac填数据时,每个道通的数据按照0,1,2,3……255进行填充。主机端通过其自带的录音软件把uac传来的数据录下来,再通过本发明实施例的方法对录下来的音频进行解析,看是否也按照传上来的规则排列,如果没有按照规则排列,则认定是传输音频发生了错误或者丢失。这样可以确保每一个字节数据丢失或者不正确都可以被发现,同时不需要花太多人的时间去判断是否丢数据,全部依靠软件系统等实现。下面结合附图对本发明作进一步详细的说明。

图1示意性地显示了根据本发明的一种实施方式的声卡通信数据的检测方法程图。如图1所示,本实施例包括如下步骤:

步骤s101:在声卡端,按照预定协议向主机写入测试数据。

示例性地,预定协议为向声卡的每个声道顺序循环写入0-255的测试数据,在其它实施例中也可以设定其它预定协议,用户可以根据需求自行设定测试数据的私有协议,通过预定协议写入数据可以得到精准的测试数据,这样就可以在主机端基于协议进行解析,以判断测试数据是否正确被传输。其中,通过向每个声道顺序循环写入0-255的测试数据的方式,实现起来比较简单方便,解析起来也比较快速、方便,能够提高处理效率和性能。

在利用声卡进行数据传输时,一般会首先对声卡进行初始化和枚举,初始化和枚举可以参照现有的方式进行实现,其中,以声卡为usb声卡为例,在枚举时会将声卡枚举成是通过uac协议进行数据传输,并为其枚举指定的端点地址,枚举的各端点地址为传输数据的目标地址。

在进行数据传输的过程中,主机端会通过相应的指令来向声卡端读取数据,声卡端在接收到主机端的开始录音指令时,会按照预定协议生成测试数据,并写入枚举的端点地址,写入的方式可以通过声卡插入主机端的usb的api接口实现。

并且,声卡端在接收到主机端的录音指令时,还会将写入端点地址的测试数据通过uac协议传输至主机端,同时停止向枚举的端点地址写入测试数据。

需要说明的是,声卡的初始化以及数据传输过程这些都可以参照现有技术,本发明实施例不对此进行限制,作为本发明实施方案做出改进的重点,是在接收到录音指令时,不是通过声卡采集音频数据,而是按照预定协议写入测试数据,其中,按照预定协议写入测试数据参照上文描述。

步骤s102:在主机端,获取声卡端写入的测试数据,并按照预定协议对获取的测试数据进行解析,根据解析结果判断声卡通信数据的准确性。

主机端通过录音指令从声卡的端点地址获取测试数据,并将获取的每一声道的该测试数据通过模数转换为16位编码的音频数据,生成音频文件存储,这部分可以通过主机端现有的录音模块(如录音软件)实现。

在获取了测试数据后,在需要进行测试时,可以通过用户界面选择生成的音频文件所在的路径,以对音频文件进行检测,即根据用于执行检测的用户指令,获取音频文件,并读取音频文件的内容。其中,生成的音频文件的内容为每一通道的数据,例如内容为“00112233...”其中,第一个“0”为第一通道的数据,第二个“0”为第二通道的数据,下一个“1”为第一通道数据,接着的“1”为第二通道的数据,以此类推。通过读取音频文件的内容,来获取每一通道的数据,按照预定协议进行解析判断,即匹配每一通道的数据是否是按预定协议写入的正确数据,以预定协议为循环写入0~255的数据为例,根据解析结果确定该通道的音频文件的内容是否正确,即是判断每个声道的数据是否是按0-255的顺序进行依次排列的,并输出检测结果。

示例性地,某一声卡端有两个声道,为每个声道写入0-255的测试数据,通过usb连接将写入的测试数据传输至主机端。根据主机端的具有录音功能的软件等开启录音功能,获取声卡端输出的测试数据,将其转换为音频信号,生成音频文件存储在临时的文件夹中。根据用户在主机端发出的检测指令,读取音频文件的内容,根据预定协议解析该音频文件,判断每个声道的测试数据是否按0-255依次排列,若是,则检测结果为声卡的通信数据正常。若不是(即出现中断的数据,如上一个数据是“1”,下一个数据应该是“2”,但解析出来却是“5”),则检测结果为声卡的通信数据不正常,存在数据丢失的情况,并显示不正常的声道。

根据本实施例可以发现细微的数据丢失问题,同时不需要花太多人力资源和时间去判断是否丢数据,全部软件实现。这种客观的判断方式可以更加精准的检测问题和解决问题。

图2示意性地显示了根据本发明一实施方式的对接收到的声卡通信数据进行检测的装置原理框图,如图2所示,

对接收到的声卡通信数据进行检测的装置包括数据获取模块201和校验模块202。该对接收的声卡通信数据进行检测的装置可以安装在具有usb接口等可以连接声卡的主机终端上,以用于对与之连接的声卡进行通信数据检测和测试。

数据获取模块201用于根据检测指令,获取生成的相应音频文件,当用户发出检测指令后,就会触发该装置获取从声卡端录音得到的音频文件,该音频文件的生成方式可以参照上述的方法部分。

校验模块202用于读取音频文件的内容,按照预定协议进行解析,根据解析结果确定音频文件的内容是否正确,并输出检测结果,其中,预定协议与相应的声卡端向主机写入数据的协议一致,例如实现为向声卡的每个声道顺序循环写入0-255的测试数据。根据预定协议解析该音频文件,判断每个声道的测试数据是否按0-255排列,若是,则检测结果为声卡的通信数据正常。若不是,则检测结果为声卡的通信数据不正常,存在数据丢失的情况,并显示不正常的声道。

根据本实施例的装置可以快捷方便的获取声卡检测的结果,并且可以客观的发现声卡的数据丢失问题,具有很强的实用性。

图3示意性地显示了根据本发明一实施方式的声卡通信数据检测系统框图,如图3所示,

该声卡通信数据检测系统包括声卡3和主机4,其中,声卡3包括测试数据写入模块301,测试数据写入模块301用于根据接收到的主机端指令按照预定协议向主机写入测试数据,预定协议实现为向声卡的每个声道顺序循环写入0-255的测试数据。

主机3包括录音模块5和检测模块6。

录音模块5用于获取声卡3端写入的测试数据;检测模块6用于按照预定协议对获取的测试数据进行解析,根据解析结果判断声卡通信数据的准确性,解析和判断的方式可以参照上述的方法部分实现。

录音模块5还用于将获取的测试数据存储为音频文件,存储为音频文件时需要将该测试数据转换为音频信号。其中,检测模块6包括文件获取单元601和文件解析单元602。

文件获取单元601用于根据检测指令,获取生成的相应音频文件,可以根据用户在检测指令中指定的文件路径,来获取该音频文件。

文件解析单元602用于读取音频文件的内容,按照预定协议进行解析,根据解析结果确定所述音频文件的内容是否正确,并输出检测结果。

在其他实现例中,也可以不通过录音模块5将测试数据转换为音频文件,而是直接将读取的测试数据直接输出给检测模块6进行解析判断,解析判断方式依然是根据预定协议。

根据本实施例的系统可以发现细微的数据丢失问题,同时不需要花太多人力资源和时间去判断是否丢数据,全部软件实现。这种客观的判断方式可以更加精准的检测问题和解决问题。

在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项声卡通信数据的检测方法。

在一些实施例中,本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当所程序指令被计算机执行时,使计算机执行上述任一项声卡通信数据的检测方法。

在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行声卡通信数据的检测方法。

在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时声卡通信数据的检测方法。

上述本发明实施例的对接收到的声卡通信数据进行检测的装置可用于执行本发明实施例的声卡通信数据的检测方法,并相应的达到上述本发明实施例的实现声卡通信数据的检测方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。

图4是本发明一实施例提供的执行声卡通信数据的检测方法的电子设备的硬件结构示意图,如图4所示,该设备包括:

一个或多个处理器410以及存储器420,图4中以一个处理器410为例。

执行声卡通信数据的检测方法的设备还可以包括:输入装置430和输出装置440。

处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。

存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的声卡通信数据的检测方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的声卡通信数据的检测方法。

存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据对接收到的声卡通信数据进行检测的装置的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至对接收到的声卡通信数据进行检测的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可接收输入的数字或字符信息,以及产生与对接收到的声卡通信数据进行检测的装置的用户设置以及功能控制有关的信号。输出装置440可包括显示屏等显示设备。

上述一个或者多个模块存储在存储器420中,当被所述一个或者多个处理器410执行时,执行上述任意方法实施例中的声卡通信数据的检测方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)车载装置:这类设备应用于车载驾驶中,可以实现与汽车的其它辅助系统等连接。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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