WO2023284653A1 - 音频驱动的系统兼容的方法、装置和设备 - Google Patents

音频驱动的系统兼容的方法、装置和设备 Download PDF

Info

Publication number
WO2023284653A1
WO2023284653A1 PCT/CN2022/104739 CN2022104739W WO2023284653A1 WO 2023284653 A1 WO2023284653 A1 WO 2023284653A1 CN 2022104739 W CN2022104739 W CN 2022104739W WO 2023284653 A1 WO2023284653 A1 WO 2023284653A1
Authority
WO
WIPO (PCT)
Prior art keywords
audio
instruction
module
virtual
proxy service
Prior art date
Application number
PCT/CN2022/104739
Other languages
English (en)
French (fr)
Inventor
沙斌
Original Assignee
北京字节跳动网络技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 北京字节跳动网络技术有限公司 filed Critical 北京字节跳动网络技术有限公司
Publication of WO2023284653A1 publication Critical patent/WO2023284653A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Definitions

  • the present disclosure relates to the field of computer technology, and in particular to an audio-driven system-compatible method, device, device, computer program product, and computer program.
  • the audio subsystem mainly accesses the pulse code modulation (PCM) audio device through the advanced linux sound architecture (ALSA) module through the pulseaudio framework to realize audio playback and recording functions.
  • PCM pulse code modulation
  • ALSA advanced linux sound architecture
  • the audio driver is mainly implemented by the hardware abstraction layer interface definition language (interface definition language, HIDL) framework in the user state hardware abstraction layer (hardware abstraction layer, HAL).
  • the present disclosure provides an audio-driven system-compatible method, device, device, computer program product, and computer program to solve one or more technical problems in the prior art.
  • an audio-driven system compatible method is provided, which is applied to a first system including a proxy service module and a virtual audio module, and the virtual audio module is set in the kernel state of the first system, including: virtual The audio module receives the voice command from the user state, and notifies the voice command to the agent service module; wherein, the virtual audio module is configured according to the parameter setting information of the target audio device controlled by the second system; the proxy service module sends the voice command based on the voice command The second system sends a start instruction for turning on the target audio device, wherein the start instruction is used to control the target audio device to perform processing based on the voice command after it is turned on.
  • an audio-driven system-compatible device which is applied to a first system including a proxy service module and a virtual audio module, and the virtual audio module is set in the kernel state of the first system, including: The virtual audio module is used to receive voice instructions from the user mode, and notify the voice instructions to the proxy service module; wherein, the virtual audio module is configured according to the parameter setting information of the target audio device controlled by the second system; the proxy service module , for sending a start instruction for turning on the target audio device to the second system based on the voice command, wherein the start instruction is used to control the target audio device to perform processing based on the sound command after it is turned on.
  • a system-compatible electronic device for audio driving including: a processor and a memory storing programs.
  • the program includes instructions that, when executed by the processor, cause the processor to perform the audio-driven system-compatible method according to an embodiment of the present disclosure.
  • a computer-readable storage medium stores computer instructions for causing a computer to execute the audio-driven system-compatible method according to the embodiment of the present disclosure.
  • a computer program product including a computer program, and when the computer program is executed by a processor, the above audio-driven system compatible method is provided.
  • a computer program which, when the computer program is run on a computer, enables the computer to implement the above audio-driven system-compatible method.
  • the virtual audio module of the first system can be used to simulate the real target audio device of the second system, so that the audio framework of the first system is compatible with the audio driver of the second system, and various sound functions can be realized .
  • FIG. 1 is a flowchart of an audio-driven system compatible method according to an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of an application scenario in which a Linux audio system is transplanted to an Android device platform according to an embodiment of the present disclosure
  • FIG. 3 is a block diagram of an audio-driven system-compatible device according to an embodiment of the disclosure.
  • FIG. 4 is a block diagram of an electronic device for implementing the audio-driven system-compatible method of an embodiment of the present disclosure.
  • an embodiment of the present disclosure provides an audio-driven system-compatible method, which is applied to a first system including a proxy service module and a virtual audio module, and the virtual audio module is set in the kernel of the first system state, the specific process is as follows:
  • Step S101 The virtual audio module receives the voice command from the user mode, and notifies the proxy service module of the voice command; wherein, the virtual audio module is configured according to the parameter setting information of the target audio device controlled by the second system.
  • Step S102 The agent service module sends an opening instruction for turning on the target audio device to the second system based on the sound instruction, wherein the opening instruction is used to control the target audio device to perform processing based on the sound instruction after being turned on.
  • the first system includes a container
  • the second system is implemented to run in the container through container technologies such as LXC, LXD, and Docker, and the first system and the second system share a Linux kernel.
  • the first system may be a GNU/Linux system, such as Ubuntu, Debian, RedHat, etc. It should be noted that the first system is not limited to running on a physical machine, and may also be an operating system hosted on another operating system, such as WSL in a Windows system.
  • the second system may be an Android (Android) operating system, covering Android OS issued by Google, AOSP and various derivative systems based on AOSP, such as MIUI, EMUI, One UI, etc.
  • the second system can also be an operating system based on the Linux kernel such as Tizen, Hongmeng, and Meego.
  • the virtual audio module of the first system can be used to simulate the real target audio device of the second system, so that the audio framework of the first system Compatible with the audio driver of the second system, realize various sound functions, avoid destroying the audio framework of the first system, and avoid system conflicts.
  • HAL hardware adaptation layer
  • HAL hardware abstraction layer
  • the second system can pass The audio hardware service in the HAL implements the driver for the audio device hardware.
  • the target audio component of the second system usually includes a microphone device and a sound playback device.
  • the virtual audio module of the first system includes a corresponding The virtual microphone module and the virtual sound player module, specifically, can carry out corresponding parameter configuration to the virtual microphone module and the virtual sound player module through the following process: the proxy service module respectively obtains the parameter settings of the microphone device and the sound player device in the target audio device information; the proxy service module performs parameter setting on the microphone virtual module in the virtual audio module according to the parameter setting information of the microphone device, and performs parameter setting on the sound playing virtual module in the virtual audio module according to the parameter setting information of the sound playing device.
  • the parameter setting information of the microphone device (Mic) and the sound playback device (Snd) usually includes information such as the number of channels, sampling frequency, and audio format.
  • the proxy service module determines to turn on the microphone device when the voice command includes a voice recording command; the proxy service module sends a message for turning on the microphone to the second system
  • the start command of the device the start command is used to control the microphone device to process based on the sound recording command after it is turned on.
  • the agent service module sends the opening instruction for opening the target audio device to the second system based on the sound instruction
  • the agent service module receives the sound recording data recorded by the microphone device, and sends the sound recording data to the microphone virtual module; the microphone virtual The module acquires the transmission frequency of the voice recording data according to the parameter setting information of the microphone virtual module, and transmits the voice recording data to the voice service from the user state according to the transmission frequency.
  • the proxy service module determines to enable the sound playback device when the voice command includes a voice playback command; the proxy service module sends an activation command for enabling the voice playback device to the second system, and the activation command uses After the control sound playback device is turned on, processing is performed based on the sound playback instruction.
  • the agent service module receives the audio playback data of the sound playback module, and sends the audio playback data to the sound playback device;
  • the device acquires the playback frequency of the audio playback data according to the parameter setting information of the sound playback device, and plays the audio playback data according to the playback frequency.
  • the first system is the Linux system and the second system is the Android system, providing a schematic diagram of an application scenario where the Linux audio system is reused as an Android device platform.
  • the Android system When configuring the parameters of virtual_mic and virtual_snd, it is necessary to collect the parameter setting information that the target audio devices of the Android system are Real_Mic and Real_Snd respectively. Specifically, the Android system reads the real Real_Mic and Real_Snd sound card information during the startup initialization stage of the Android Hal layer audio service to obtain the corresponding channel number, sampling frequency, audio format and other information, and transfers the remote call to the registered in Linux through hwbinder The proxy service module in the system user state further sets the obtained parameter setting information to virtual_mic and virtual_snd.
  • the main role and function of the virtual_mic device node is to receive the sound recording command of the pulseaudio service in the user state in the kernel state, and notify the user state proxy service module of the Linux system of the sound recording command, and the proxy service module sends the Android Hal layer under the Android system through hwbinder
  • the audio service transmits cross-process instructions, opens the real Real_Mic to start recording, and receives recording data.
  • the recording data passes through the Android Hal layer audio service, and is quickly transmitted to the proxy service module of the Linux system through FMQ.
  • the FMQ mechanism is a fast message queue implemented in the user mode, it can realize zero-copy data transmission, so it can guarantee the maximum delay loss of recording data during transmission.
  • This method realizes the construction of a fast message queue by passing the audio buffer handle between the sending end and the receiving end, so as to avoid data copying during the cross-process transfer of audio data.
  • the agent service module After receiving the recording data, the agent service module sends the recording data to virtual_mic.
  • the virtual_mic simulates the real Real_Mic soft interrupt event and finally sends the recording data to the pulseaudio service of the linux system through pcm1 and ALSA to complete the recording function.
  • the role and function of the virtual_snd device node are exactly the opposite of virtual_mic.
  • the pulseaudio service under the Linux system sends the audio playback data to be played to virtual_snd through the PCM device.
  • virtual_snd forwards the audio playback data to the proxy service module under the Linux system.
  • the proxy service module passes the data through the Android Hal layer audio service to the greatest extent in real time through the FMQ mechanism, and transmits the audio playback data to the real Real_Snd to complete the audio playback function.
  • an embodiment of the present disclosure provides an audio-driven system-compatible device, which includes a virtual audio module 301 and a proxy service module 302.
  • the device is applied in the first system,
  • the virtual audio module 301 is set in the kernel mode of the first system, wherein:
  • the virtual audio module 301 is used to receive the voice instruction from the user mode, and notify the voice instruction to the agent service module 302; wherein, the virtual audio module 301 is configured according to the parameter setting information of the target audio device controlled by the second system;
  • the proxy service module 302 is configured to send an activation instruction for enabling the target audio device to the second system based on the audio instruction, wherein the activation instruction is used to control the target audio device to perform processing based on the audio instruction after activation.
  • the proxy service module 302 is also used to:
  • the microphone virtual module in the virtual audio module 301 is parameterized according to the parameter setting information of the microphone device, and the sound playing virtual module in the virtual audio module 301 is parameterized according to the parameter setting information of the sound playing device.
  • the proxy service module 302 is specifically configured to:
  • the voice command includes a voice recording command
  • it is determined to turn on the microphone device; a start command for turning on the microphone device is sent to the second system, and the start command is used to control the microphone device to perform processing based on the sound recording command after it is turned on.
  • the agent service module 302 sends an opening instruction for opening the target audio device to the second system based on the sound instruction, it is further used to:
  • Trigger the microphone virtual module obtain the transmission frequency of the voice recording data according to the parameter setting information of the microphone virtual module, and transmit the voice recording data to the voice service from the user state according to the transmission frequency.
  • the proxy service module 302 is specifically configured to:
  • the sound instruction includes a sound playback instruction
  • it is determined to turn on the sound playback device; an opening instruction for turning on the sound playback device is sent to the second system, and the opening instruction is used to control the sound playback device to perform processing based on the sound playback instruction after it is turned on.
  • the agent service module 302 sends an opening instruction for opening the target audio device to the second system based on the sound instruction, it is further used to:
  • the sound playing device is triggered to obtain the playing frequency of the audio playing data according to the parameter setting information of the sound playing device, and play the audio playing data according to the playing frequency.
  • the second system runs in a container of the first system and shares a Linux kernel.
  • the acquisition, storage and application of user personal information and device parameter information involved are in compliance with relevant laws and regulations, and do not violate public order and good customs.
  • the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.
  • the computer-readable storage medium provided by the embodiments of the present disclosure has a computer program stored thereon, and when the program is executed by a processor, implements the audio-driven system-compatible method in the foregoing method embodiments.
  • a computer program is stored thereon, and when the program is executed by a processor, the audio-driven system-compatible method in the foregoing method embodiments is implemented.
  • An embodiment of the present disclosure also provides a computer program, which enables the computer to implement the audio-driven system-compatible method in the foregoing method embodiments when the computer program is run on the computer.
  • FIG. 4 shows a schematic block diagram of an example electronic device 400 that may be used to implement embodiments of the present disclosure.
  • Electronic device is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers.
  • Electronic devices may also represent various forms of mobile devices, such as personal digital processing, cellular telephones, smart phones, wearable devices, and other similar computing devices.
  • the components shown herein, their connections and relationships, and their functions, are by way of example only, and are not intended to limit implementations of the disclosure described and/or claimed herein.
  • the device 400 includes a computing unit 401 that can execute according to a computer program stored in a read-only memory (ROM) 402 or loaded from a storage unit 408 into a random access memory (RAM) 403. Various appropriate actions and treatments. In the RAM 403, various programs and data necessary for the operation of the device 400 can also be stored.
  • the computing unit 401, ROM 402, and RAM 403 are connected to each other through a bus 404.
  • An input/output (I/O) interface 405 is also connected to bus 404 .
  • the I/O interface 405 includes: an input unit 406, such as a keyboard, a mouse, etc.; an output unit 407, such as various types of displays, speakers, etc.; a storage unit 408, such as a magnetic disk, an optical disk, etc. ; and a communication unit 409, such as a network card, a modem, a wireless communication transceiver, and the like.
  • the communication unit 409 allows the device 400 to exchange information/data with other devices over a computer network such as the Internet and/or various telecommunication networks.
  • the computing unit 401 may be various general-purpose and/or special-purpose processing components having processing and computing capabilities. Some examples of computing units 401 include, but are not limited to, central processing units (CPUs), graphics processing units (GPUs), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processing processor (DSP), and any suitable processor, controller, microcontroller, etc.
  • the computing unit 401 executes various methods and processes described above, such as the audio-driven system-compatible method shown in FIG. 1 .
  • the audio-driven system-compatible method shown in FIG. 1 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 408 .
  • part or all of the computer program may be loaded and/or installed on the device 400 via the ROM 402 and/or the communication unit 409.
  • the computer program When the computer program is loaded into RAM 403 and executed by computing unit 401, one or more steps of the audio-driven system compatible method described above may be performed.
  • the computing unit 401 may be configured in any other appropriate way (for example, by means of firmware) to execute the audio-driven system-compatible method shown in FIG. 1 .
  • Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips Implemented in a system of systems (SOC), load programmable logic device (CPLD), computer hardware, firmware, software, and/or combinations thereof.
  • FPGAs field programmable gate arrays
  • ASICs application specific integrated circuits
  • ASSPs application specific standard products
  • SOC system of systems
  • CPLD load programmable logic device
  • computer hardware firmware, software, and/or combinations thereof.
  • programmable processor can be special-purpose or general-purpose programmable processor, can receive data and instruction from storage system, at least one input device, and at least one output device, and transmit data and instruction to this storage system, this at least one input device, and this at least one output device an output device.
  • Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented.
  • the program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
  • a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
  • a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
  • a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
  • machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read only memory
  • EPROM or flash memory erasable programmable read only memory
  • CD-ROM compact disk read only memory
  • magnetic storage or any suitable combination of the foregoing.
  • the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user. ); and a keyboard and pointing device (eg, a mouse or a trackball) through which a user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and pointing device eg, a mouse or a trackball
  • Other kinds of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and can be in any form (including Acoustic input, speech input or, tactile input) to receive input from the user.
  • the systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., as a a user computer having a graphical user interface or web browser through which a user can interact with embodiments of the systems and techniques described herein), or including such backend components, middleware components, Or any combination of front-end components in a computing system.
  • the components of the system can be interconnected by any form or medium of digital data communication, eg, a communication network. Examples of communication networks include: Local Area Network (LAN), Wide Area Network (WAN) and the Internet.
  • a computer system may include clients and servers.
  • Clients and servers are generally remote from each other and typically interact through a communication network.
  • the relationship of client and server arises by computer programs running on the respective computers and having a client-server relationship to each other.
  • the server can be a cloud server, a server of a distributed system, or a server combined with a blockchain.
  • steps may be reordered, added or deleted using the various forms of flow shown above.
  • each step described in the present disclosure may be executed in parallel, sequentially, or in a different order, as long as the desired result of the technical solution disclosed in the present disclosure can be achieved, no limitation is imposed herein.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Collating Specific Patterns (AREA)
  • Communication Control (AREA)
  • Navigation (AREA)
  • Stereophonic System (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开提供了一种音频驱动的系统兼容的方法、装置、设备、计算机程序产品及计算机程序,应用于包括代理服务模块和虚拟音频模块的第一系统中,具体实现方案为:虚拟音频模块接收来自用户态的声音指令,并向代理服务模块通知声音指令;其中,虚拟音频模块是根据第二系统控制的目标音频器件的参数设置信息进所配置的;代理服务模块基于声音指令向第二系统发送用于开启目标音频器件的开启指令,其中,开启指令用于控制目标音频器件在开启后基于声音指令进行处理。从而在不改变第一系统的音频框架的前提下,使第一系统的音频框架兼容第二系统的音频驱动。

Description

音频驱动的系统兼容的方法、装置和设备
本公开要求于2021年10月14日提交中国专利局、申请号为202111197400.2、发明名称为“音频驱动的系统兼容的方法、装置和设备”的中国专利申请以及于2021年07月12日提交中国专利局、申请号为202110785532.0、发明名称为“基于Linux系统的协议栈数据传输方法、计算机设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。
技术领域
本公开涉及计算机技术领域,尤其涉及一种音频驱动的系统兼容的方法、装置、设备、计算机程序产品及计算机程序。
背景技术
在Linux系统中,音频子系统主要通过pulseaudio框架经过高级Linux声音体系(advanced linux sound architecture,ALSA)模块访问脉冲编码调制(pulse code modulation,PCM)音频设备,实现音频播放和录音功能的。在安卓(Android)设备平台上,音频驱动在用户态硬件抽象层(hardware abstraction layer,HAL)主要由硬件抽象层接口定义语言(interface definition language,HIDL)框架实现。
相关技术中,针对将Linux音频系统移植到安卓设备平台的应用场景,通常需要对pulseaudio框架进行直接改造以对接安卓设备平台的驱动接口,这不仅对pulseaudio框架结构破坏性大,不利于版本维护升级,且存在不同系统的内存冲突问题,稳定性较差。
发明内容
本公开提供了一种音频驱动的系统兼容的方法、装置、设备、计算机程序产品及计算机程序,以解决现有技术中的一个或多个技术问题。
根据本公开的一方面,提供了一种音频驱动的系统兼容的方法,应用于包括代理服务模块和虚拟音频模块的第一系统中,虚拟音频模块设置在第一系统的内核态,包括:虚拟音频模块接收来自用户态的声音指令,并向代理服务模块通知声音指令;其中,虚拟音频模块是根据第二系统控制的目标音频器件的参数设置信息进所配置的;代理服务模块基于 声音指令向第二系统发送用于开启目标音频器件的开启指令,其中,开启指令用于控制目标音频器件在开启后基于声音指令进行处理。
根据本公开的另一方面,提供了一种音频驱动的系统兼容的装置,应用于包括代理服务模块和虚拟音频模块的第一系统中,虚拟音频模块设置在第一系统的内核态,包括:虚拟音频模块,用于接收来自用户态的声音指令,并向代理服务模块通知声音指令;其中,虚拟音频模块是根据第二系统控制的目标音频器件的参数设置信息进所配置的;代理服务模块,用于基于声音指令向第二系统发送用于开启目标音频器件的开启指令,其中,开启指令用于控制目标音频器件在开启后基于声音指令进行处理。
根据本公开的另一方面,提供了一种用于音频驱动的系统兼容的电子设备,包括:处理器和存储程序的存储器。程序包括指令,指令在由处理器执行时使处理器执行根据本公开实施例的音频驱动的系统兼容的方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行根据本公开实施例的音频驱动的系统兼容的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上的音频驱动的系统兼容的方法。
根据本公开的另一方面,提供了一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机实现如上的音频驱动的系统兼容的方法。
通过上述音频驱动的系统兼容的方案,能够利用第一系统的虚拟音频模块模拟第二系统的真实的目标音频器件,使第一系统的音频框架兼容第二系统的音频驱动,实现各种声音功能。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的音频驱动的系统兼容的方法流程图;
图2是根据本公开实施例的将Linux音频系统移植到安卓设备平台的应用场景示意图;
图3是根据本公开实施例的音频驱动的系统兼容的装置框图;
图4是用来实现本公开实施例的音频驱动的系统兼容的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
针对将Linux音频系统移植到安卓设备平台的应用场景,相关技术中,通常需要对pulseaudio框架进行直接改造以对接安卓设备平台的驱动接口,这不仅对pulseaudio框架结构破坏性大,不利于版本维护升级,且存在不同系统的内存冲突问题,稳定性较差。
请参阅图1所示,本公开实施例提供一种音频驱动的系统兼容的方法,该方法应用于包括代理服务模块和虚拟音频模块的第一系统中,虚拟音频模块设置在第一系统的内核态,具体流程如下所示:
步骤S101:虚拟音频模块接收来自用户态的声音指令,并向代理服务模块通知声音指令;其中,虚拟音频模块是根据第二系统控制的目标音频器件的参数设置信息进所配置的。
示例性的,在对虚拟音频模块进行参数配置时,修改第一系统的内核设备树,添加虚拟音频模块,并在第一系统的驱动层完成对虚拟音频模块的驱动的注册,使得在第一系统的音频框架服务能够发现新增的PCM设备节点即虚拟音频模块。
步骤S102:代理服务模块基于声音指令向第二系统发送用于开启目标音频器件的开启指令,其中,开启指令用于控制目标音频器件在开启后基于声音指令进行处理。
本公开实施例中,可选的,第一系统中包括容器,通过LXC、LXD、Docker等容器技术实现在容器中运行第二系统,第一系统与第二系统共享Linux内核。
例如,第一系统可以是GNU/Linux系统,如Ubuntu、Debian、RedHat等。需要说明的是,第一系统并不限定是运行在物理机上的,也可以是托管在其它操作系统上的操作系统,例如Windows系统中的WSL。
例如,第二系统可以是Android(安卓)操作系统,涵盖Google发行的Android OS以及AOSP和基于AOSP的各种衍生系统,如MIUI、EMUI、One UI等。第二系统还可以是如Tizen、鸿蒙、Meego等基于Linux内核的操作系统。
通过上述音频驱动的系统兼容的方法,在不改变第一系统的音频框架的前提下,能够利用第一系统的虚拟音频模块模拟第二系统的真实的目标音频器件,使第一系统的音频框架兼容第二系统的音频驱动,实现各种声音功能,避免破坏第一系统的音频框架,避免出现系统冲突的现象。
示例性的,有多种方式实现代理服务模块与第二系统的音频器件驱动硬件适配层(HAL)的通讯,包括但不限于binder、管道(PIPE)、消息队列(MQ)、共享内存(Share Memory)、内存映射文件(Memory Map)、套接字(Socket)等。
本领域技术人员可以理解,硬件抽象层(HAL)是对操作系统内核驱动程序的封装,向上对各种应用层需求提供硬件访问接口,向下屏蔽底层硬件的驱动实现细节,第二系统可以通过HAL中的音频硬件服务实现对音频设备硬件的驱动。
示例性的,第二系统的目标音频部件通常包括麦克风器件和声音播放器件,为了利用第二系统的目标音频器件实现第一系统的声音处理功能,第一系统的虚拟音频模块包括与之对应的虚拟麦克风模块和虚拟声音播放模块,具体的,可以通过如下过程对虚拟麦克风模块和虚拟声音播放模块进行对应的参数配置:代理服务模块分别获取目标音频器件中的麦克风器件和声音播放器件的参数设置信息;代理服务模块根据麦克风器件的参数设置信息对虚拟音频模块中的麦克风虚拟模块进行参数设置,根据声音播放器件的参数设置信息对虚拟音频模块中的声音播放虚拟模块进行参数设置。
其中,麦克风器件(Mic)和声音播放器件(Snd)的参数设置信息通常包括声道数量,采样频率,音频格式等信息。
由于声音指令包括声音录制指令和声音播放指令,一种可能的实现方式,代理服务模块在声音指令包含声音录制指令的情况下,确定开启麦克风器件;代理服务模块向第二系统发送用于开启麦克风器件的开启指令,开启指令用于控制麦克风器件在开启后基于声音录制指令进行处理。
进一步的,代理服务模块基于声音指令向第二系统发送用于开启目标音频器件的开启指令之后,代理服务模块接收麦克风器件录制的声音录制数据,并将声音录制数据发送到麦克风虚拟模块;麦克风虚拟模块根据麦克风虚拟模块的参数设置信息获取声音录制数据的传输频率,按照传输频率将声音录制数据传输至来自用户态的声音服务。
另一种可能的实现方式中,代理服务模块在声音指令包含声音播放指令的情况下,确定开启声音播放器件;代理服务模块向第二系统发送用于开启声音播放器件的开启指令,开启指令用于控制声音播放器件在开启后基于声音播放指令进行处理。
进一步的,代理服务模块基于声音指令向第二系统发送用于开启目标音频器件的开启指令之后,代理服务模块接收声音播放模块的音频播放数据,并将音频播放数据发送到声音播放器件;声音播放器件根据声音播放器件的参数设置信息获取音频播放数据的播放频率,按照播放频率将音频播放数据进行播放。
请参阅图2所示,为便于理解,以第一系统为Linux系统、第二系统为Android系统,提供了一种将Linux音频系统复用安卓设备平台的应用场景示意图。
在Linux系统的初始配置阶段,修改内核设备树,添加虚拟音频模块virtual_mic,virtual_snd,并在驱动层完成对虚拟音频模块的驱动的注册,使得在Linux系统,pulseaudio服务能够发现新增的PCM设备节点virtual_mic和virtual_snd。
在对virtual_mic和virual_snd进行参数配置时,需要采集安卓系统的目标音频器件分别为Real_Mic和Real_Snd的参数设置信息。具体的,Android系统在Android Hal层音频服务在启动初始化阶段读取真实的Real_Mic和Real_Snd的声卡信息获取对应的声道数量、采样频率、音频格式等信息,并通过hwbinder远程调用传递到注册在Linux系统用户态的代理服务模块,进一步将获取到的参数设置信息设置给virtual_mic和virtual_snd。
virtual_mic设备节点的主要作用和功能为在内核态接收用户态pulseaudio服务的声音录制指令,并將此声音录制指令通知Linux系统用户态代理服务模块,代理服务模块通过hwbinder向Android系统下的Android Hal层音频服务传递跨进程指令,打开真实的Real_Mic开始录音,接收录音数据。录音数据经过Android Hal层音频服务,通过FMQ快速传递到Linux系统的代理服务模块。
由于FMQ机制是一种在用户态实现的快速消息队列,可实现数据传输的零拷贝,因此可最大程度保证录音数据在传递过程中的延迟损耗。本方法通过在发送端和接收端传递音频缓冲区句柄的方式实现构建快速消息队列,避免在音频数据跨进程传递过程中产生数据拷贝。代理服务模块接收到录音数据后将录音数据送入virtual_mic。virtual_mic通过模拟真实的Real_Mic的软中断事件最终将录音数据通过pcm1,ALSA送给linux系统的pulseaudio服务,完成录音功能。
virtual_snd设备节点的作用和功能与virtual_mic恰恰相反。Linux系统下的pulseaudio服务通过PCM设备将需要播放的音频播放数据送入virtual_snd。virtual_snd将音频播放数据转发给Linux系统下的代理服务模块。代理服务模块通过FMQ机制最大程度实时将数据通过Android Hal层音频服务,将音频播放数据传送给真实的Real_Snd完成音频播放功能。
基于相同的发明构思,请参阅图3所示,本公开实施例提供一种音频驱动的系统兼容的装置,该装置包括虚拟音频模块301和代理服务模块302,该装置应用于第一系统中,虚拟音频模块301设置在第一系统的内核态,其中:
虚拟音频模块301,用于接收来自用户态的声音指令,并向代理服务模块302通知声音指令;其中,虚拟音频模块301是根据第二系统控制的目标音频器件的参数设置信息进所配置的;
代理服务模块302,用于基于声音指令向第二系统发送用于开启目标音频器件的开启指令,其中,开启指令用于控制目标音频器件在开启后基于声音指令进行处理。
在一种可能的实现方式中,代理服务模块302还用于:
分别获取目标音频器件中的麦克风器件和声音播放器件的参数设置信息;
根据麦克风器件的参数设置信息对虚拟音频模块301中的麦克风虚拟模块进行参数设置,根据声音播放器件的参数设置信息对虚拟音频模块301中的声音播放虚拟模块进行参数设置。
在一种可能的实现方式中,代理服务模块302具体用于:
在声音指令包含声音录制指令的情况下,确定开启麦克风器件;向第二系统发送用于开启麦克风器件的开启指令,开启指令用于控制麦克风器件在开启后基于声音录制指令进行处理。
在一种可能的实现方式中,代理服务模块302基于声音指令向第二系统发送用于开启目标音频器件的开启指令之后,还用于:
接收麦克风器件录制的声音录制数据,并将声音录制数据发送到麦克风虚拟模块;
触发麦克风虚拟模块,根据麦克风虚拟模块的参数设置信息获取声音录制数据的传输频率,按照传输频率将声音录制数据传输至来自用户态的声音服务。
在一种可能的实现方式中,代理服务模块302具体用于:
在声音指令包含声音播放指令的情况下,确定开启声音播放器件;向第二系统发送用于开启声音播放器件的开启指令,开启指令用于控制声音播放器件在开启后基于声音播放指令进行处理。
在一种可能的实现方式中,代理服务模块302基于声音指令向第二系统发送用于开启目标音频器件的开启指令之后,还用于:
接收声音播放模块的音频播放数据,并将音频播放数据发送到声音播放器件;
触发声音播放器件根据声音播放器件的参数设置信息获取音频播放数据的播放频率,按照播放频率将音频播放数据进行播放。
在一种可能的实现方式中,所述第二系统运行在第一系统的容器中,并共享Linux内核。
本公开的技术方案中,所涉及的用户个人信息以及设备参数信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
本公开实施例提供的计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中的音频驱动的系统兼容的方法。
本公开实施例提供的计算机程序产品,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中的音频驱动的系统兼容的方法。
本公开实施例还提供了一种计算机程序,当该计算机程序在计算机上运行时,使得该计算机实现前述方法实施例中的音频驱动的系统兼容的方法。
图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作 所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如图1所示的音频驱动的系统兼容的方法。例如,在一些实施例中,图1所示的音频驱动的系统兼容的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的音频驱动的系统兼容的方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图1所示的音频驱动的系统兼容的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所 规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (12)

  1. 一种音频驱动的系统兼容的方法,其特征在于,应用于包括代理服务模块和虚拟音频模块的第一系统中,所述虚拟音频模块设置在所述第一系统的内核态,包括:
    所述虚拟音频模块接收来自用户态的声音指令,并向所述代理服务模块通知所述声音指令;其中,所述虚拟音频模块是根据第二系统控制的目标音频器件的参数设置信息进所配置的;
    所述代理服务模块基于所述声音指令向第二系统发送用于开启目标音频器件的开启指令,其中,所述开启指令用于控制所述目标音频器件在开启后基于所述声音指令进行处理。
  2. 根据权利要求1所述的方法,其特征在于,还包括:
    所述代理服务模块分别获取所述目标音频器件中的麦克风器件和声音播放器件的参数设置信息;
    所述代理服务模块根据所述麦克风器件的参数设置信息对所述虚拟音频模块中的麦克风虚拟模块进行参数设置,根据所述声音播放器件的参数设置信息对所述虚拟音频模块中的声音播放虚拟模块进行参数设置。
  3. 根据权利要求2所述的方法,其特征在于,所述代理服务模块基于所述声音指令向第二系统发送用于开启目标音频器件的开启指令,包括:
    所述代理服务模块在所述声音指令包含声音录制指令的情况下,确定开启所述麦克风器件;所述代理服务模块向第二系统发送用于开启所述麦克风器件的开启指令,所述开启指令用于控制所述麦克风器件在开启后基于所述声音录制指令进行处理。
  4. 根据权利要求3所述的方法,其特征在于,所述代理服务模块基于所述声音指令向第二系统发送用于开启目标音频器件的开启指令之后,还包括:
    所述代理服务模块接收所述麦克风器件录制的声音录制数据,并将所述声音录制数据发送到所述麦克风虚拟模块;
    触发所述麦克风虚拟模块根据所述麦克风虚拟模块的参数设置信息获取所述声音录制数据的传输频率,按照所述传输频率将所述声音录制数据传输至来自用户态的声音服务。
  5. 根据权利要求2~4中任一项所述的方法,其特征在于,所述代理服务模块基于所述声音指令向第二系统发送用于开启目标音频器件的开启指令,包括:
    所述代理服务模块在所述声音指令包含声音播放指令的情况下,确定开启所述声音播放器件;所述代理服务模块向第二系统发送用于开启所述声音播放器件的开启指令,所述开启指令用于控制所述声音播放器件在开启后基于所述声音播放指令进行处理。
  6. 根据权利要求5所述的方法,其特征在于,所述代理服务模块基于所述声音指令向第二系统发送用于开启目标音频器件的开启指令之后,还包括:
    所述代理服务模块接收所述声音播放模块的音频播放数据,并将所述音频播放数据发送到所述声音播放器件;
    触发所述声音播放器件根据所述声音播放器件的参数设置信息获取所述音频播放数据的播放频率,按照所述播放频率将所述音频播放数据进行播放。
  7. 根据权利要求1~6中任一项所述的方法,其特征在于,所述第二系统运行在第一系统的容器中,并共享Linux内核。
  8. 一种音频驱动的系统兼容的装置,其特征在于,应用于包括代理服务模块和虚拟音频模块的第一系统中,所述虚拟音频模块设置在所述第一系统的内核态,包括:
    所述虚拟音频模块,用于接收来自用户态的声音指令,并向所述代理服务模块通知所述声音指令;其中,所述虚拟音频模块是根据第二系统控制的目标音频器件的参数设置信息进所配置的;
    所述代理服务模块,用于基于所述声音指令向第二系统发送用于开启目标音频器件的开启指令,其中,所述开启指令用于控制所述目标音频器件在开启后基于所述声音指令进行处理。
  9. 一种电子设备,包括:
    至少一个处理器;以及
    与所述至少一个处理器通信连接的存储器;其中,
    所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~7中任一项所述的方法。
  10. 一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1~7中任一项所述的方法。
  11. 一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1~7中任一项所述的方法。
  12. 一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机实现根据权利要求1~7中任一项所述的方法。
PCT/CN2022/104739 2021-07-12 2022-07-08 音频驱动的系统兼容的方法、装置和设备 WO2023284653A1 (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202110785532.0 2021-07-12
CN202110785532.0A CN113505007A (zh) 2021-07-12 2021-07-12 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质
CN202111197400.2A CN113821359B (zh) 2021-07-12 2021-10-14 音频驱动的系统兼容的方法、装置和设备
CN202111197400.2 2021-10-14

Publications (1)

Publication Number Publication Date
WO2023284653A1 true WO2023284653A1 (zh) 2023-01-19

Family

ID=78012793

Family Applications (6)

Application Number Title Priority Date Filing Date
PCT/CN2022/104739 WO2023284653A1 (zh) 2021-07-12 2022-07-08 音频驱动的系统兼容的方法、装置和设备
PCT/CN2022/105002 WO2023284693A1 (zh) 2021-07-12 2022-07-11 定位信息的获取方法、装置、电子设备及存储介质
PCT/CN2022/104869 WO2023284672A1 (zh) 2021-07-12 2022-07-11 定位信息的获取方法、装置、电子设备及存储介质
PCT/CN2022/105026 WO2023284699A1 (zh) 2021-07-12 2022-07-12 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质
PCT/CN2022/105303 WO2023284759A1 (zh) 2021-07-12 2022-07-12 指纹访问方法、装置、设备及存储介质
PCT/CN2022/105172 WO2023284732A1 (zh) 2021-07-12 2022-07-12 基于Linux内核的协议栈数据传输方法及装置

Family Applications After (5)

Application Number Title Priority Date Filing Date
PCT/CN2022/105002 WO2023284693A1 (zh) 2021-07-12 2022-07-11 定位信息的获取方法、装置、电子设备及存储介质
PCT/CN2022/104869 WO2023284672A1 (zh) 2021-07-12 2022-07-11 定位信息的获取方法、装置、电子设备及存储介质
PCT/CN2022/105026 WO2023284699A1 (zh) 2021-07-12 2022-07-12 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质
PCT/CN2022/105303 WO2023284759A1 (zh) 2021-07-12 2022-07-12 指纹访问方法、装置、设备及存储介质
PCT/CN2022/105172 WO2023284732A1 (zh) 2021-07-12 2022-07-12 基于Linux内核的协议栈数据传输方法及装置

Country Status (3)

Country Link
US (1) US20240296081A1 (zh)
CN (8) CN113505007A (zh)
WO (6) WO2023284653A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625246A (zh) * 2020-05-15 2020-09-04 武汉蓝星科技股份有限公司 一种Linux-Android终端双系统的桌面管理方法
CN113505007A (zh) * 2021-07-12 2021-10-15 北京鲸鲮信息系统技术有限公司 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质
CN114153564B (zh) * 2021-12-07 2024-04-26 北京字节跳动网络技术有限公司 多系统中近场通信单元访问方法及装置、电子设备、存储介质
CN114356804B (zh) * 2021-12-28 2024-05-31 北京奕斯伟计算技术股份有限公司 通信方法、装置、设备、计算机可读存储介质及程序产品
CN113990354B (zh) * 2021-12-29 2022-06-17 北京鲸鲮信息系统技术有限公司 基于Linux的音频控制方法、装置、设备和存储介质
CN114242105A (zh) * 2022-02-24 2022-03-25 麒麟软件有限公司 一种对Android应用实施录音降噪的方法和系统
CN116782370A (zh) * 2022-03-07 2023-09-19 Oppo广东移动通信有限公司 定位方法、装置、可穿戴设备、存储介质及产品
CN115562765B (zh) * 2022-12-05 2023-04-07 北京小米移动软件有限公司 定位组件的控制方法、装置、电子设备及存储介质
CN117978210B (zh) * 2022-12-09 2024-10-18 北京小米移动软件有限公司 近场通信nfc业务的处理方法、装置、电子设备及存储介质
CN116737281B (zh) * 2023-01-12 2024-01-09 银河航天(北京)通信技术有限公司 文件上注的方法、装置及存储介质
CN116795452B (zh) * 2023-07-20 2024-04-02 龙芯中科(北京)信息技术有限公司 驱动程序兼容性的确定方法、装置及设备
CN118295723A (zh) * 2024-06-05 2024-07-05 成都阿加犀智能科技有限公司 一种使用Android系统播放Linux音频的方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109313566A (zh) * 2017-12-27 2019-02-05 深圳前海达闼云端智能科技有限公司 一种虚拟机的音频播放方法及其装置、移动终端
US20200218500A1 (en) * 2019-01-04 2020-07-09 Joseph Thomas Hanley System and method for audio information instruction
CN111930340A (zh) * 2020-09-21 2020-11-13 北京技德系统技术有限公司 一种基于Linux与Android兼容技术的虚拟音频装置与方法
CN113821359A (zh) * 2021-07-12 2021-12-21 北京鲸鲮信息系统技术有限公司 音频驱动的系统兼容的方法、装置和设备

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265239A (en) * 1991-04-08 1993-11-23 Ardolino Anthony A Method for remotely accessing service programs of a local processing system supporting multiple protocol stacks and multiple device drivers
US7734829B2 (en) * 2004-06-09 2010-06-08 Emc Corporation Methods, systems, and computer program products for transparently controlling communications between network applications and a plurality of network communications protocol stacks using deferred protocol stack association
TW200636631A (en) * 2005-04-15 2006-10-16 Mitac Int Corp Satellite navigation device for real-time route planning
US7577441B2 (en) * 2007-06-27 2009-08-18 Motorola, Inc. Method and device for determining a position of a portable electronic device
US20110161620A1 (en) * 2009-12-29 2011-06-30 Advanced Micro Devices, Inc. Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices
CN101866326B (zh) * 2010-05-24 2012-10-24 北京航空航天大学 一种消息传递接口支持总线通信框架
WO2012092706A1 (en) * 2011-01-04 2012-07-12 Motorola Mobility, Inc. Hybrid operating system media integration
CN102833080A (zh) * 2011-06-15 2012-12-19 康佳集团股份有限公司 一种应用软件的进程间通信方法和系统
CN102339234B (zh) * 2011-07-12 2013-04-17 迈普通信技术股份有限公司 一种协议栈运行装置和方法
WO2013026461A1 (en) * 2011-08-19 2013-02-28 Abb Research Ltd Method, positioning unit and system for communication in a mine
CN102984823A (zh) * 2012-10-30 2013-03-20 上海孚恩电子科技有限公司 物联网移动终端的多功能管理系统
US8893222B2 (en) * 2012-11-13 2014-11-18 Auckland Uniservices Ltd. Security system and method for the android operating system
US9378038B2 (en) * 2013-06-07 2016-06-28 American Megatrends, Inc. Methods, devices and computer readable storage devices for emulating a gyroscope in a guest operating system from a host operating system
US9749280B2 (en) * 2013-09-20 2017-08-29 Oracle International Corporation Techniques for reliable messaging for an intermediary in a network communication environment
CN103761089B (zh) * 2014-01-14 2017-09-15 清华大学 基于寄存器传输语言确定动态函数调用关系的方法
CN109344112A (zh) * 2014-07-08 2019-02-15 北京航空航天大学 一种基于多核处理器架构的机器人混合系统应用框架
WO2016004587A1 (zh) * 2014-07-08 2016-01-14 北京航空航天大学 一种基于多核处理器架构的机器人混合系统应用框架
CN104267956B (zh) * 2014-09-28 2016-05-11 深圳光启智能光子技术有限公司 一种操作系统中控制硬件设备的方法和装置
CN105657562A (zh) * 2014-11-10 2016-06-08 乐视致新电子科技(天津)有限公司 一种实现卡拉ok应用的系统和方法
CN104567821A (zh) * 2015-01-27 2015-04-29 合肥华科信息科技有限公司 一种基于卫星定位的交通事故现场勘察测绘系统
US10015120B2 (en) * 2015-03-25 2018-07-03 Oracle International Corporation Providing message delivery services between requestors and providers
US10467421B2 (en) * 2015-10-23 2019-11-05 Oracle International Corporation Establishing trust between containers
CN105491524B (zh) * 2015-12-11 2019-04-26 小米科技有限责任公司 一种确定目标便携设备位置的方法和装置
CN105893038A (zh) * 2016-03-30 2016-08-24 大连理工大学 一种安卓蓝牙协议栈向Mint17系统移植的方法
CN107515790A (zh) * 2016-06-16 2017-12-26 成都鼎桥通信技术有限公司 电子设备的系统
CN109669782A (zh) * 2017-10-13 2019-04-23 阿里巴巴集团控股有限公司 硬件抽象层复用方法、装置、操作系统和设备
CN109669723B (zh) * 2017-10-13 2023-06-13 斑马智行网络(香港)有限公司 硬件访问方法、装置、设备和机器可读介质
WO2019078917A1 (en) * 2017-10-20 2019-04-25 Galatea Technology LLC METHOD AND APPARATUS FOR VIRTUAL WRITING ON AN NFC CHIP
CN108304247A (zh) * 2017-12-19 2018-07-20 华为技术有限公司 访问摄像头的方法和装置、服务器、可读存储介质
CN108152839B (zh) * 2017-12-22 2021-11-19 西安烽火电子科技有限责任公司 基于Android操作系统的北斗数据通信系统及方法
CN108319513B (zh) * 2018-01-23 2021-04-02 北京东土科技股份有限公司 一种多分区操作系统中的消息传递方法及装置
CN109063434A (zh) * 2018-07-24 2018-12-21 广州朗国电子科技有限公司 同步解锁双系统会议白板的方法及系统
CN111427617B (zh) * 2019-01-09 2023-05-30 斑马智行网络(香港)有限公司 数据处理方法、装置及设备
FR3094514A1 (fr) * 2019-03-25 2020-10-02 Proton World International N.V. Système électronique
CN110262874B (zh) * 2019-05-31 2023-08-22 东信和平科技股份有限公司 一种基于java虚拟机的新型物联网多任务操作系统及方法
CN112073762B (zh) * 2019-06-10 2022-05-06 聚好看科技股份有限公司 基于多系统显示设备的信息获取方法及多系统显示设备
CN112073448B (zh) * 2019-06-11 2022-10-11 成都鼎桥通信技术有限公司 一种双系统终端的服务隔离方法和装置
CN110515667B (zh) * 2019-08-26 2023-04-11 武汉蓝星科技股份有限公司 一种基于linux内核的终端双系统显示切换方法及终端双系统
CN112751815B (zh) * 2019-10-31 2021-11-19 华为技术有限公司 报文处理方法、装置、设备及计算机可读存储介质
CN112749017A (zh) * 2019-10-31 2021-05-04 中兴通讯股份有限公司 移动通信方法及装置、存储介质、电子装置
CN110944286A (zh) * 2019-11-28 2020-03-31 出门问问信息科技有限公司 提供定位信息的方法、装置、系统及存储介质
CN111182063B (zh) * 2019-12-30 2022-09-09 奇安信科技集团股份有限公司 应用于电子设备的数据处理方法、电子设备及介质
CN112099923B (zh) * 2020-11-17 2021-02-05 江苏北弓智能科技有限公司 一种运行于Linux操作系统上的Android虚拟化系统
CN112882987A (zh) * 2021-03-12 2021-06-01 北京小米移动软件有限公司 多核通信方法、装置、电子设备及存储介质
CN113792280A (zh) * 2021-09-24 2021-12-14 北京鲸鲮信息系统技术有限公司 指纹访问方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109313566A (zh) * 2017-12-27 2019-02-05 深圳前海达闼云端智能科技有限公司 一种虚拟机的音频播放方法及其装置、移动终端
US20200218500A1 (en) * 2019-01-04 2020-07-09 Joseph Thomas Hanley System and method for audio information instruction
CN111930340A (zh) * 2020-09-21 2020-11-13 北京技德系统技术有限公司 一种基于Linux与Android兼容技术的虚拟音频装置与方法
CN113821359A (zh) * 2021-07-12 2021-12-21 北京鲸鲮信息系统技术有限公司 音频驱动的系统兼容的方法、装置和设备

Also Published As

Publication number Publication date
CN113821359B (zh) 2024-04-26
CN113626224A (zh) 2021-11-09
WO2023284699A1 (zh) 2023-01-19
WO2023284732A1 (zh) 2023-01-19
CN113722128B (zh) 2024-08-13
CN113608898A (zh) 2021-11-05
CN114253740A (zh) 2022-03-29
WO2023284759A1 (zh) 2023-01-19
CN113821359A (zh) 2021-12-21
CN113821360A (zh) 2021-12-21
US20240296081A1 (en) 2024-09-05
WO2023284672A1 (zh) 2023-01-19
CN113626224B (zh) 2024-03-19
CN113722128A (zh) 2021-11-30
CN113806116A (zh) 2021-12-17
WO2023284693A1 (zh) 2023-01-19
CN113505007A (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
WO2023284653A1 (zh) 音频驱动的系统兼容的方法、装置和设备
JP6663434B2 (ja) ネットワーク・マップド・ストレージを用いたホスト・ベースの不揮発性メモリのクラスタ化
US7743107B2 (en) System and method for using remote module on VIOS to manage backups to remote backup servers
US8032353B1 (en) Method and apparatus for providing peripheral connection management in a remote computing environment
KR101130474B1 (ko) 총칭 usb 드라이버
WO2018090918A1 (zh) 一种视频文件的处理方法、装置和系统
CN110071900A (zh) 数据发送的方法及设备
KR20140143793A (ko) 유니버셜 직렬 버스 디바이스들에 대한 데이터 재지향
US8856407B2 (en) USB redirection for write streams
WO2018090723A1 (zh) 实现有线传屏的方法及装置
US9892074B2 (en) System and method to support USB devices in an unsupported operating system in VDI environments
CN107247634A (zh) 一种机器人动态异步远程过程调用的方法和装置
WO2023088313A1 (zh) 输入设备虚拟化的方法、装置、电子设备和存储介质
WO2023093016A1 (zh) 云端代码开发系统、方法、装置、设备及存储介质
CN117407123B (zh) 基于多系统隔离的usb设备虚拟共享系统
WO2018090722A1 (zh) 实现有线传屏的方法及装置
WO2023000697A1 (zh) 通过语音方式控制程序的方法、设备及程序产品
US9811305B2 (en) Systems and methods for remote and local host-accessible management controller tunneled audio capability
US8516079B2 (en) Remote desktop control system using USB interface and method thereof
EP3826259A1 (en) Distributed multi-terminal and multi-network supporting system for android online game
US9760524B2 (en) System and method to redirect UASP mass storage devices to an unsupported operating system in a VDI environment
WO2023060956A1 (zh) 蓝牙行为的模拟方法、装置和设备
KR101479463B1 (ko) 클라우드 스트리밍 기반의 데이터 전송 방법, 시스템, 클라이언트 단말기 및 서비스장치
WO2023088199A1 (zh) 传感器设备适配的方法、装置、电子设备和存储介质
KR101430928B1 (ko) 클라우드 스트리밍 기반의 데이터 이동 방법, 시스템, 클라이언트 단말기 및 서비스장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22841289

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 230424)