CN110032354A - 一种单路麦克风复用方法及装置 - Google Patents
一种单路麦克风复用方法及装置 Download PDFInfo
- Publication number
- CN110032354A CN110032354A CN201810028760.1A CN201810028760A CN110032354A CN 110032354 A CN110032354 A CN 110032354A CN 201810028760 A CN201810028760 A CN 201810028760A CN 110032354 A CN110032354 A CN 110032354A
- Authority
- CN
- China
- Prior art keywords
- audio data
- microphone
- virtual
- buffer circle
- single channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/10537—Audio or video recording
- G11B2020/10546—Audio or video recording specifically adapted for audio data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B2020/10916—Seeking data on the record carrier for preparing an access to a specific address
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Circuit For Audible Band Transducer (AREA)
Abstract
本发明公开了一种单路麦克风复用方法及装置。方法包括以下步骤:预先设置若干虚拟麦克风;启动若干录音应用程序;加载虚拟麦克风,分别为启动的各录音应用程序一一分配一虚拟麦克风;从声卡驱动中获取音频数据;将获取的音频数据存放至缓冲区;通过已分配的各虚拟麦克风分别提取缓冲区内的音频数据;将各虚拟麦克风所提取的音频数据分别一一传输至相应的录音应用程序。该方法在硬件抽象层模拟多个虚拟麦克风,各虚拟麦克风共享单个物理麦克风的数据,实现多个应用程序同时使用一个麦克风的目的,克服了硬件的限制。
Description
技术领域
本发明涉及计算机通讯技术领域,尤其涉及一种单路麦克风复用方法及装置。
背景技术
目前的单麦克风(MIC)平台中,在同一时刻只能有一个应用程序占用麦克风录音,而在汽车中控产品中,大部分场景下需要有两个或以上的应用程序使用麦克风数据。目前,在只有一个物理麦克风的产品中,无法实现多个录音应用程序同时进行录音。
发明内容
针对现有技术的不足,本发明提出了一种单路麦克风复用方法及装置,该方法在硬件抽象层模拟多个虚拟麦克风,各虚拟麦克风共享单个物理麦克风的数据,解决了多个录音应用程序无法同时使用一个麦克风的问题。
为了实现上述目的,本发明技术方案如下:
一种单路麦克风复用方法,包括以下步骤:
S1:预先设置若干虚拟麦克风。
S2:启动若干录音应用程序。
S3:加载虚拟麦克风,分别为启动的各录音应用程序一一分配一虚拟麦克风。
S4:从声卡驱动中获取音频数据。
S5:将获取的音频数据存放至缓冲区。
S6:通过已分配的各虚拟麦克风分别提取缓冲区内的音频数据。
S7:将各虚拟麦克风所提取的音频数据分别一一传输至相应的录音应用程序。
进一步地,还包括以下步骤:
S8:通过各录音应用程序对所获取的音频数据进行压缩编码,并将压缩编码后的音频数据封装成相应的音频格式。
进一步地,缓冲区为环形缓冲区。
进一步地,步骤S5包含以下步骤:
S51:预先设置环形缓冲区,并在环形缓冲区中设定一与声卡驱动相对应的写指针及若干与各虚拟麦克风分别一一对应的读指针。
S52:当环形缓冲区的储存容量未满时,将从声卡驱动中获取的音频数据写入环形缓冲区中写指针所指向的位置,并将环形缓冲区中的写指针后移。
进一步地,步骤S5还包含以下步骤:
S53:当环形缓冲区的储存容量满时,将环形缓冲区中当前最先写入的音频数据丢弃。
进一步地,步骤S6包含以下步骤:
S61:当环形缓冲区不为空时,将各读指针所指向的环形缓冲区中的音频数据提取出来,并放置在对应的虚拟麦克风中。
S62:分别将环形缓冲区的各读指针后移。
一种单路麦克风复用装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现上述任意一项方法的步骤。
本发明的有益效果:
该方法在硬件抽象层模拟多个虚拟麦克风,各虚拟麦克风共享单个物理麦克风的数据,实现多个录音应用程序同时使用一个麦克风的目的,具有层次清晰,耦合度低,数据转换容易等特点,克服了硬件的限制。
附图说明
图1为本发明单路麦克风复用方法的流程示意图。
图2为本发明单路麦克风复用方法的原理框架示意图。
具体实施方式
下面结合附图和实施例,进一步阐述本发明。
实施例1:
如图1所示,一种单路麦克风复用方法,包括以下步骤:
S1:在硬件抽象层(audio HAL)预先设置若干虚拟麦克风。
虚拟麦克风用于向上层传输音频数据。硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
S2:启动若干录音应用程序。
S3:通过框架(Framework)层加载硬件抽象层的虚拟麦克风,分别为启动的各录音应用程序一一分配一虚拟麦克风。
Android的框架层用于定义客户端和服务端组件的服务和接口。本发明中,框架层还负责对录音应用程序提出的录音请求进行参数设定,包括数据采样率、采样位数、单双声道设置等。
S4:守候物理麦克风,从声卡驱动中获取音频数据。
S5:将从声卡驱动中获取的音频数据存放至缓冲区。
S6:通过已分配的各虚拟麦克风分别提取缓冲区内的音频数据。
S7:通过框架层将各虚拟麦克风所提取的音频数据分别一一传输至相应的录音应用程序。
S8:通过各录音应用程序对所获取的音频数据进行压缩编码,并将压缩编码后的音频数据封装成相应的音频格式。
音频格式可以为cda格式、MP3格式、WMA格式、RA格式、MIDI格式、APE格式或FLAC格式。
如图2所示,本发明在Android audio HAL(硬件抽象层)模拟多个虚拟麦克风,各虚拟麦克风共享单个物理麦克风的数据,实现多个录音应用程序同时使用一个麦克风的目的,具有层次清晰,耦合度低,数据转换容易等特点,克服了硬件的限制。
较佳地,缓冲区为环形缓冲区。环形缓冲区是一个先进先出的循环缓存区,其特点是环形缓冲区内的音频数据的写入或读取可以并发执行,写入进程与读取进程可以采用“生产者与消费者”的模型来缓冲区,从而方便了缓存的使用和管理。环形缓冲区的容量大小可根据实际需要来设置。
具体地,步骤S5包含以下步骤:
S51:预先设置一个环形缓冲区,并在环形缓冲区中设定一与声卡驱动相对应的写指针及若干与各虚拟麦克风分别一一对应的读指针。
写指针是用在当存入数据时对环形缓冲区空间的标记,读指针是用在当读出数据时对环形缓冲区空间的标记。通俗的说法就是写指针指向的是所要填到的具体空间,读指针指向的是所要读出的空间。
S52:当环形缓冲区的储存容量未满时,将从声卡驱动中获取的音频数据写入环形缓冲区中写指针所指向的位置,并将环形缓冲区中的写指针后移。
将环形缓冲区中的写指针后移的具体实现方式为将当前写指针的数值加一。
S53:当环形缓冲区的储存容量满时,将环形缓冲区中当前最先写入的音频数据丢弃。
进一步地,步骤S6包含以下步骤:
S61:当环形缓冲区不为空时,将各读指针所指向的环形缓冲区中的音频数据提取出来,并放置在对应的虚拟麦克风中。
S62:分别将环形缓冲区的各读指针后移。将环形缓冲区中的各读指针后移的具体实现方式为将当前各读指针的数值分别加一。
初始时,分别为写指针及各读指针设置初始值。写入数据时,先判断写指针与各读指针相减是否小于环形缓冲区的最大存储值,判断为是,则将音频数据写入写指针所指向存储空间内的数据,数据写入后,将写指针数值加1。再判断写指针是否溢出,即判断写指针是否等于0。若写指针溢出,则对写指针进行修正,具体为:写指针=(MAX_NUM%C)+1;其中,MAX_NUM为最大读写指针值,C为最大消息数。读取数据时,先判断写指针与各读指针是否相等,判断为否,则读取各读指针所指向存储空间内的数据,读取后,将各读指针数值加1。再判断各读指针指针是否溢出,即判断读指针是否等于0。若读指针溢出,则对读指针进行修正,具体为:读指针=(MAX_NUM%C)+1。
实施例2:
本实施例提供了一种单路麦克风复用装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现实施例1的方法的步骤S1-S8。
具体地,计算机程序被处理器执行时还实现实施例1的方法的步骤S51-S53。
进一步地,计算机程序被处理器执行时还实现实施例1的方法的步骤S61-S62。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其它改进和变化均应认为包含在本发明的保护范围之内。
Claims (7)
1.一种单路麦克风复用方法,其特征在于:
包括以下步骤:
预先设置若干虚拟麦克风;
启动若干录音应用程序;
加载所述虚拟麦克风,分别为启动的各所述录音应用程序一一分配一所述虚拟麦克风;
从声卡驱动中获取音频数据;
将获取的所述音频数据存放至缓冲区;
通过已分配的各所述虚拟麦克风分别提取所述缓冲区内的所述音频数据;
将各所述虚拟麦克风所提取的所述音频数据分别一一传输至相应的所述录音应用程序。
2.根据权利要求1所述的单路麦克风复用方法,其特征在于:
还包括以下步骤:
通过各所述录音应用程序对所获取的所述音频数据进行压缩编码,并将压缩编码后的所述音频数据封装成相应的音频格式。
3.根据权利要求1所述的单路麦克风复用方法,其特征在于:
所述缓冲区为环形缓冲区。
4.根据权利要求3所述的单路麦克风复用方法,其特征在于:
所述将获取的所述音频数据存放至缓冲区的步骤包含:
预先设置所述环形缓冲区,并在所述环形缓冲区中设定一与所述声卡驱动相对应的写指针及若干与各所述虚拟麦克风分别一一对应的读指针;
当所述环形缓冲区的储存容量未满时,将从所述声卡驱动中获取的所述音频数据写入所述环形缓冲区中写指针所指向的位置,并将所述环形缓冲区中的写指针后移。
5.根据权利要求4所述的单路麦克风复用方法,其特征在于:
所述将获取的所述音频数据存放至缓冲区的步骤还包含:
当所述环形缓冲区的储存容量满时,将所述环形缓冲区中当前最先写入的所述音频数据丢弃。
6.根据权利要求4所述的单路麦克风复用方法,其特征在于:
所述通过已分配的各所述虚拟麦克风分别提取所述缓冲区内的所述音频数据的步骤包含:
当所述环形缓冲区不为空时,将各读指针所指向的所述环形缓冲区中的所述音频数据提取出来,并放置在对应的所述虚拟麦克风中;
分别将所述环形缓冲区的各读指针后移。
7.一种单路麦克风复用装置,其特征在于:
包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现如权利要求1至6中任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028760.1A CN110032354A (zh) | 2018-01-12 | 2018-01-12 | 一种单路麦克风复用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028760.1A CN110032354A (zh) | 2018-01-12 | 2018-01-12 | 一种单路麦克风复用方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110032354A true CN110032354A (zh) | 2019-07-19 |
Family
ID=67234391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810028760.1A Pending CN110032354A (zh) | 2018-01-12 | 2018-01-12 | 一种单路麦克风复用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032354A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035273A (zh) * | 2020-07-17 | 2020-12-04 | 湖北亿咖通科技有限公司 | 一种硬件数据获取方法、系统和计算机设备 |
CN112147801A (zh) * | 2020-09-25 | 2020-12-29 | 朱燕 | 骨传导发声辅助系统、方法、设备及存储介质 |
CN112579038A (zh) * | 2020-12-24 | 2021-03-30 | 上海商米科技集团股份有限公司 | 一种内置录音方法、装置、电子设备和存储介质 |
CN113220260A (zh) * | 2021-03-26 | 2021-08-06 | 西安神鸟软件科技有限公司 | 一种多应用程序的音频数据处理方法及终端设备 |
CN113220261A (zh) * | 2021-03-26 | 2021-08-06 | 西安神鸟软件科技有限公司 | 一种基于虚拟麦克风的音频数据获取方法及终端设备 |
CN113220262A (zh) * | 2021-03-26 | 2021-08-06 | 西安神鸟软件科技有限公司 | 一种多应用程序的音频数据分发方法及终端设备 |
CN113391838A (zh) * | 2020-03-13 | 2021-09-14 | 阿里巴巴集团控股有限公司 | 麦克风资源访问方法、操作系统、终端和虚拟麦克风 |
CN113596588A (zh) * | 2021-07-31 | 2021-11-02 | 郑州信大捷安信息技术股份有限公司 | 一种单机多平台直播方法和系统 |
CN113660569A (zh) * | 2021-08-17 | 2021-11-16 | 上海月猫科技有限公司 | 一种基于高音质网红麦克风的共享音频技术 |
US20220158862A1 (en) * | 2020-11-13 | 2022-05-19 | Haier Us Appliance Solutions, Inc. | Virtual microphone input for multiple voice assistants |
CN113542977B (zh) * | 2021-07-15 | 2023-06-09 | 深圳软牛科技有限公司 | 合成声卡和麦克风声音的方法、装置和相关组件 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800867A (zh) * | 2010-01-19 | 2010-08-11 | 深圳市同洲电子股份有限公司 | 一种实现环形缓冲区的方法、装置及数字电视接收终端 |
US20110016397A1 (en) * | 2009-07-20 | 2011-01-20 | Apple Inc. | Positioning a virtual sound capturing device in a three dimensional interface |
CN106250093A (zh) * | 2015-06-05 | 2016-12-21 | 苹果公司 | 先前捕捉的音频的检索机制 |
CN106559706A (zh) * | 2015-09-28 | 2017-04-05 | 青岛海信电器股份有限公司 | 一种音频数据的处理方法、装置和系统 |
CN107369452A (zh) * | 2017-07-25 | 2017-11-21 | 上海闻泰电子科技有限公司 | 音频数据的处理方法及系统 |
-
2018
- 2018-01-12 CN CN201810028760.1A patent/CN110032354A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016397A1 (en) * | 2009-07-20 | 2011-01-20 | Apple Inc. | Positioning a virtual sound capturing device in a three dimensional interface |
CN101800867A (zh) * | 2010-01-19 | 2010-08-11 | 深圳市同洲电子股份有限公司 | 一种实现环形缓冲区的方法、装置及数字电视接收终端 |
CN106250093A (zh) * | 2015-06-05 | 2016-12-21 | 苹果公司 | 先前捕捉的音频的检索机制 |
CN106559706A (zh) * | 2015-09-28 | 2017-04-05 | 青岛海信电器股份有限公司 | 一种音频数据的处理方法、装置和系统 |
CN107369452A (zh) * | 2017-07-25 | 2017-11-21 | 上海闻泰电子科技有限公司 | 音频数据的处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
蒙博宇: "《STM32自学笔记 第2版》", 31 January 2014 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391838A (zh) * | 2020-03-13 | 2021-09-14 | 阿里巴巴集团控股有限公司 | 麦克风资源访问方法、操作系统、终端和虚拟麦克风 |
CN112035273A (zh) * | 2020-07-17 | 2020-12-04 | 湖北亿咖通科技有限公司 | 一种硬件数据获取方法、系统和计算机设备 |
CN112147801A (zh) * | 2020-09-25 | 2020-12-29 | 朱燕 | 骨传导发声辅助系统、方法、设备及存储介质 |
US20220158862A1 (en) * | 2020-11-13 | 2022-05-19 | Haier Us Appliance Solutions, Inc. | Virtual microphone input for multiple voice assistants |
US11700139B2 (en) * | 2020-11-13 | 2023-07-11 | Haier Us Appliance Solutions, Inc. | Virtual microphone input for multiple voice assistants |
CN112579038A (zh) * | 2020-12-24 | 2021-03-30 | 上海商米科技集团股份有限公司 | 一种内置录音方法、装置、电子设备和存储介质 |
CN112579038B (zh) * | 2020-12-24 | 2023-05-23 | 上海商米科技集团股份有限公司 | 一种内置录音方法、装置、电子设备和存储介质 |
CN113220261A (zh) * | 2021-03-26 | 2021-08-06 | 西安神鸟软件科技有限公司 | 一种基于虚拟麦克风的音频数据获取方法及终端设备 |
CN113220262A (zh) * | 2021-03-26 | 2021-08-06 | 西安神鸟软件科技有限公司 | 一种多应用程序的音频数据分发方法及终端设备 |
CN113220260A (zh) * | 2021-03-26 | 2021-08-06 | 西安神鸟软件科技有限公司 | 一种多应用程序的音频数据处理方法及终端设备 |
CN113542977B (zh) * | 2021-07-15 | 2023-06-09 | 深圳软牛科技有限公司 | 合成声卡和麦克风声音的方法、装置和相关组件 |
CN113596588A (zh) * | 2021-07-31 | 2021-11-02 | 郑州信大捷安信息技术股份有限公司 | 一种单机多平台直播方法和系统 |
CN113660569A (zh) * | 2021-08-17 | 2021-11-16 | 上海月猫科技有限公司 | 一种基于高音质网红麦克风的共享音频技术 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032354A (zh) | 一种单路麦克风复用方法及装置 | |
CN109636884A (zh) | 动画处理方法、装置及设备 | |
CN106651995B (zh) | 一种动画资源的配置方法、播放方法和装置 | |
CN101060418B (zh) | 适用于带时移iptv直播服务器的专用磁盘读写系统 | |
CN108462895A (zh) | 音效处理方法、装置和机器可读介质 | |
CN108702480A (zh) | 电子设备和用于驱动其显示器的方法 | |
CN206650803U (zh) | 一种nfc多媒体播放设备 | |
EP1145744A3 (en) | Game system and computer readable storage medium therefor | |
CN109375568A (zh) | 一种多源数据实时采集装置 | |
CN106250571A (zh) | 一种etl数据处理的方法及系统 | |
CN103618952B (zh) | 一种智能电视开机动画的播放方法和智能电视 | |
CN104219505A (zh) | 一种基于PCIe的多路高清模拟音视频采集系统 | |
CN106063289A (zh) | 创建内容的方法及其电子装置 | |
CN103279081A (zh) | 一种航空健康控制系统 | |
CN104658546A (zh) | 录音处理方法和装置 | |
CN102831630A (zh) | 一种动画渲染方法及装置 | |
CN108347480A (zh) | 数据同步方法、装置及电子烟 | |
CN102857833B (zh) | 一种适配android stagefright 多媒体框架的音频解码系统及方法 | |
JP2011529229A (ja) | 複数ストリームのメディアデータを統合するためのシステム、方法または装置 | |
CN205754609U (zh) | 无线数字麦克风 | |
CN102522096A (zh) | 多路音视频同步回放系统及其方法 | |
CN103685229A (zh) | 节能连续数据传递 | |
CN101369442B (zh) | 一种多光驱同步刻录方法 | |
CN110235110A (zh) | 当停顿的写入操作发生时减少或避免来自压缩存储器系统中的未压缩高速缓冲存储器的经逐出高速缓冲存储数据的缓冲 | |
CN104269185B (zh) | 在Java虚拟机中实现混音播放的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190719 |
|
RJ01 | Rejection of invention patent application after publication |