专利名称:利用波形的声音到触觉效应转换系统的利记博彩app
技术领域:
一种实施例一般指向一种设备,且更具体地,指向一种生成触觉效应的设备。
背景技术:
触觉是一种通过向用户应用触觉反馈效应(即,“触觉效应”),例如力、振动、以及运动,利用用户触摸感觉的触觉压力反馈技术。例如移动设备、触摸屏设备、以及个人计算机的设备,可以被配置为产生触觉效应。通常,能够产生触觉效应(例如致动器)的、到嵌入式硬件的调用能够在设备的操作系统(“OS”)中被编程。这些调用指定插放(play)哪个触觉效应。例如,当用户通过使用,例如,按钮、触摸屏、杠杆、操纵杆、滚轮、或一些其他控制与设备交互时,设备的OS会经由控制电路发送插放命令给嵌入式硬件。该嵌入式硬件然后生成合适的触觉效应。这种设备还可以被配置为播放音频数据,例如数字音频信号。例如,这种设备可以包括配置为播放视频数据的应用程序,例如电影或视频游戏,其包含音频部分或音频数据,例如歌曲。类似于触觉,能够产生音频效应(例如扬声器)的、到另外的嵌入式硬件的调用能够在设备的OS中被编程。因此,设备的OS能经由控制电路发送播放命令给另外的嵌入式硬件,其中另外的嵌入式硬件接着生成适当的听觉效应
发明内容
一个实施例指向一种将音频信号转换成一个或多个触觉效应的系统。该系统接收该音频信号的数据帧。该系统进一步产生该数据帧的最大值。该系统进一步变换该数据帧。该系统进一步基于该变换的数据帧的最大值产生至少一个正弦载波波形。该系统进一步混合该变换的数据帧与该至少一个正弦载波波形来产生调制数据帧。该系统进一步基于该最大值以及该调制数据帧产生触觉信号。该系统进一步发送该触觉信号到致动器来产生一个或多个触觉效应。
更多的实施例、细节、优点、以及修改将从下面优选实施例的详细描述中变得明白,其将结合附图来考虑。图1示出了根据本发明实施例的触觉转换系统的方框图。图2示出了根据本发明实施例的触觉转换系统的结构图。图3示出了根据本发明实施例,由触觉转换系统执行的功能(functionality)的流程图。
图4示出了根据本发明实施例,被应用来控制输出值范围的线性转换函数。图5示出了根据本发明实施例,基于数字音频信号生成的触觉效应的振幅示例计
笪
ο图6示出了根据本发明实施例,数字音频信号的包络的示例计算。图7示出了根据本发明实施例,基于频率含量(frequency content)的数字音频信号的包络的示例计算。图8A示出了根据本发明实施例,在数字音频信号被过滤之前数字音频信号的振幅谱的示例计算。图SB示出了根据本发明实施例,在数字音频信号被过滤之后数字音频信号的振幅谱的示例计算。
图9示出了根据本发明实施例,触觉转换模块的功能流程图。
具体实施例方式一个实施例是能够截取一个或多个帧音频数据的触觉转换(conversion)系统,例如数字音频信号,变换(transform)该一个或多个帧,将一个或多个转换的帧转换(convert)为触觉信号,并通过致动器播放该生成的触觉信号来产生一个或多个触觉效应。该触觉信号可以包括波形,其中波形是以脉冲编码调制(“PCM”)格式的一个或多个信号值的集合。该触觉信号可以应用于一种类型的配置为接收波形的致动器,其中该致动器能够利用该波形来产生一个或多个触觉效应。图1示出了根据本发明实施例的触觉转换系统10的方框图。在一个实施例中,系统10是移动设备的一部分,并且系统10为该移动设备提供触觉转换功能。尽管示出为一个单独的系统,但系统10的功能可以作为分布式系统来实现。系统10包括总线12或用于通信信息的其他通信机制,以及耦合于总线12的用于处理信息的处理器22。处理器22可以是任何类型的通用或专用目的的处理器。系统10进一步包括用于存储由处理器22执行的信息和指令的存储器14。存储器14可以包括:随机存取存储器(“RAM”)、只读存储器(“ROM”)、静态存储器例如磁盘或光盘、或任何其他类型的计算机可读介质的任何组合。计算机可读介质可以是任何可获得的介质,其能被处理器22访问并可以包括易失性和非易失性介质、可移动和不可移动介质、通信介质、以及存储介质。通信介质可以包括计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据,例如载波或其他传输机制,并且可以包括本领域公知的任何其他形式的信息传递介质。存储介质可以包括RAM、闪存、ROM、可擦除可编程只读存储器(“EPR0M”)、电可擦除可编程只读存储器(“EEPR0M”)、寄存器、硬盘、移动磁盘、光盘只读存储器(“⑶-ROM”)、或本领域公知的任何其他形式的存储介质。在实施例中,存储器14存储软件模块,其在被处理器22执行时提供功能。在实施例中,该模块包括为系统10提供操作系统功能性的操作系统15,以及移动设备的剩余部分。该模块进一步包括触觉转换模块16,其将音频信号转换为用来产生一个或多个触觉效应的触觉信号,下文将更详细描述。在某些实施例中,触觉转换模块16包括多个模块,其中每一个提供专用各个功能,用于将音频信号转换为用来产生一个或多个触觉效应的触觉信号。系统10将典型地包括一个或多个另外的应用程序模块18以包括另外其他的功能,例如Immersion公司的MOTTV .触觉开发平台。在实施例中,系统10从远程源发送和/或接收数据,其进一步包括例如网络接口卡的通信设备20,以提供移动无线的网络通信,例如红外的、射频的、W1-F1、蜂窝网络、或其他下一代无线数据网络通信。在其池实施例中,通信设备20提供一种有线的网络连接,例如以太网连接或调制解调器。处理器22进一步经由总线12耦合到显示器24,例如液晶显示器(“IXD”),用于为用户显示图形表示或用户接口。显示器24可以是一种触摸敏感输入设备,例如触摸屏,其被配置为发送和接收来自处理器22的信号,并且可以是多触摸的触摸屏。系统10进一步包括一个或多个致动器26。处理器22可以传送触觉效应相关的触觉信号到致动器26,其进而输出触觉效应。致动器26可以是,例如,电子马达、电磁致动器、音圈、形状记忆合金、电活性的聚合物、螺线管、质量偏心旋转电机(“ERM”)、线性谐振致动器(“LRA”)、压电致动器、高带宽致动器、电活性聚合物(“ΕΑΡ”)致动器、静电摩擦显示器、或超声波振动产生器。在一些实施例中,系统10进一步包括一个或多个扬声器28。处理器22可以传送音频信号给扬声器28,其 进而输出音频效应。扬声器28可以是,例如,动态喇叭、电动喇叭、压电扬声器、磁致伸缩喇叭、静电扬声器、带及平面磁喇叭、弯曲波喇叭、平板喇叭、海尔气动式喇叭、等离子弧扬声器、以及数字式音箱。图2示出了根据本发明实施例的触觉转换系统的结构图。在该示出的实施例中,触觉转换系统包括音频轨道模块210和扬声器220。音频轨道模块210是用于设备(例如移动设备)的操作系统模块,其配置为接收一个或多个PCM音频缓冲,并使一个或多个PCM音频缓冲流向扬声器220,其中每个PCM音频缓冲包括一个或多个PCM音频数据帧。在一个实施例中,音频轨道模块210是用于移动设备的Android 操作系统的一种Android音频轨道模块。扬声器220是一种配置为接收一个或多个PCM音频缓冲并配置为输出一个或多个音频效应的扬声器。扬声器220可以是,例如,动态喇机、电动喇机、压电扬声器、磁致伸缩喇叭、静电扬声器、带及平面磁喇叭、弯曲波喇叭、平板喇叭、海尔气动式喇叭、等离子弧扬声器、以及数字式音箱。根据该实施例,触觉转换系统还包括触觉转换模块230。在某些实施例中,触觉转换模块230和图1中的触觉转换模块16相同。在该示出的实施例中,触觉转换模块230包括三个子模块:混响(reverb)模块231、内置扬声器(boombox)模块232、以及带通过滤器233。然而,这仅仅是一个示例性实施例,并且在可选实施例中,触觉转换模块230可以包括任何数量的子模块,或者触觉转换模块230可以是单个模块。根据实施例,混响模块231配置为截取一个或多个由音频轨道模块210流向扬声器220的音频缓冲(buffer)。混响模块231进一步配置为发送每个音频缓冲的每个音频数据帧到内置扬声器模块232。内置扬声器模块232配置为分析每个音频数据帧并为每个音频数据帧计算最大值。由内置扬声器模块232执行对每个音频数据帧最大值的计算,并关于图4-7进一步更加详细地描述。内置扬声器模块232进一步配置为将每个音频数据帧的最大值返回给混响模块231。内置扬声器模块232进一步配置为发送每个音频缓冲的每个音频数据帧给带通过滤器233。带通过滤器233配置为带通过滤每个音频缓冲的每个音频数据帧。通过带通过滤每个音频数据帧,带通过滤器233可以过滤给定音频缓冲器中任何指定范围的频率信号的一个或更多频率波段(例如,0-500HZ范围内的频率信号的单独频率波段)。因此,这个频率范围内的所有信号都可以被提取来生成仅这些信号的新的音频缓冲。由这种过滤产生的效应是“低音增强(bass-boost) ”或者“超低音(subwoofer) ”类型的信号。带通过滤器233进一步配置为返回每个带通过滤的音频数据帧给内置扬声器模块232。在可选实施例中,带通过滤器233不是一种过滤器,而是一种变换模块(例如,数字信号处理器(“DSP”)处理、状态机、或其他类型的编程逻辑块)。在这些可选实施例中,变换模块可以将接收的音频数据帧变换为一种新的音频数据帧,其中变换不一定是一种过滤变换。内置扬声器模块232被进一步配置,对于每个带通过滤的音频数据帧,基于被带通过滤的音频数据帧的最大值产生正弦波周期载波频率(还可以称为“正弦载波波形”)。产生该正弦波周期载波频率将关于图3进一步详细描述。在可选实施例中,内置扬声器模块232可被进一步配置为产生多个正弦波周期频率。对于每个被带通过滤的音频数据帧,内置扬声器模块232进一步配置为将产生的正弦波周期载波频率添加到被带通过滤的音频数据帧(也被称为混合该产生的正弦波周期载波频率与被带通过滤的音频数据帧),由此调制被带通过滤的音频数据帧。内置扬声器模块232被进一步配置为返回每个被调制的音频数据帧给混响模块231。 触觉转换系统还包括触觉效应播放摸块240和致动器250。触觉效应播放模块240是一种嵌入在设备(例如移动设备)中的模块,并被配置为通过发送一个或多个触觉信号到致动器,而在致动器播放一个或多个触觉效应。在一个实施例中,触觉效应播放模块240是Immersion公司的TouchSense Player 。致动器250是一种配置为接收一个或多个触觉信号,并且配置为输出一个或多个触觉效应的致动器。在某些实施例中,致动器250是一种配置为接收波形的致动器,其中当经由致动器播放时,该波形被用来控制波形效应的振幅和精度。致动器250可以是,例如,压电致动器、高带宽致动器、或者EAP致动器。根据实施例,混响模块231配置为确定每个音频数据帧的每个最大值是否大于特定阈值。当音频数据帧的最大值大于该特定阈值时,混响模块231配置为调用触觉效应播放模块240的应用程序接口(“API”)并将相应的调制音频数据帧作为API的参数,发送给触觉效应播放模块240。当音频 数据帧的最大值不大于特定阈值时,混响模块231配置为忽略该音频数据帧,并且不发送相应的调制音频数据帧给触觉效应播放模块240。在某些实施例中,触觉效应播放模块240的API是Immersion公司的TouchSense P丨ayer 的“TmmVibeAppendWaveformEffect ”API。在其他实施例中,API 可以是“ ImmViberPlayMagSweepEf feet”或者“ImmVibePlayPeriodicEffect”。触觉效应播放模块240的API发送该调制音频数据帧到致动器250,其中致动器250配置为基于该调制音频数据帧播放恰当的波形。根据实施例,该调制音频数据帧用作为由致动器250播放的波形,其中波形包括加强除了周期触觉信号之外的一个或多个频率波段,并且其中调制音频数据帧能够控制由致动器250播放的波形精度。通过播放波形,致动器250产生触觉效应。图3示出了根据本发明实施例,由触觉转换系统执行的功能的流程图。在实施例中,图3的功能以及图9的功能,都是由存储在存储器或其他计算机可读或有形介质中的软件来实施,并由处理器执行。在其他实施例中,功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(1 6么”),等)、或硬件和软件的任何组合来执行。此外,在可选实施例中,该功能可以利用模拟元件由硬件来执行。根据实施例,触觉转换系统包括一个操作系统300、混响模块301、以及内置扬声器模块302、以及无穷脉冲响应(“IIR”)过滤器303。操作系统300是设备(例如移动设备)的操作系统。在例示的实施例中,操作系统300是用于移动设备的Android 操作系统。混响模块301、内置扬声器模块302、以及IIR过滤器303是触觉转换模块(例如图1中的触觉转换模块16)的子模块。在某些实施例中,混响模块301、内置扬声器模块302、以及IIR过滤器303分别与图2中的混响模块231、内置扬声器模块232、以及带通过滤器233相同。根据实施例,在305,生成配置为生成音频信号的应用。该应用是能够在操作系统300内部执行的任何应用。在例示的实施例中,该应用是Android 应用。流程进行到310。在310,由应用生成“声音池”对象,其中声音池对象是声音池API的一个实例(其是Android API ),并且其中,声音池对象为应用管理并播放音频资源。声音池对象可以包括音频样本的采集,其能被从设备内存储的资源或者从设备的文件系统内存储的文件载入设备的存储器中。该声音池对象能将音频样本的采集解码为原始16位PCM单声道或立体声缓冲。流程进行到315。在315,应用生成其他音频对象,其中其他音频对象是其他音频API的实例。其他音频对象还能够将音频样本解码为16位PCM音频缓冲。流程进行到320。在320,音频轨道对象是由声音池对象或其他音频对象之一生成的。音频轨道对象配置为接收一个或多个PCM音频缓冲并流出该一个或多个PCM音频缓冲。流程进行到325。在325,生成混响对象。混响对象是混响模块301的一个实例,其中混响对象配置为处理由音频轨道对象发送的PCM音频缓冲的一个或多个音频数据帧,如之前关于图2所描述的。流程进行到330。在330,混响对象的一个或多个设置被设定。混响设置的例子包括:激活/不激活触觉转换、激活/不激活用于媒体的触觉转换、从三个选项(例如,轻的、中度的、强的)中选择触觉转换的强度,以及选择为其激活触觉转换的一个或多个应用(例如,从列表中)。在某些实施例中,上述设置以可扩展标示语言(“XML”)文件被保存。上述设直能够从XML文 件中读取并被保存在混响对象中,其中混响对象能够为某些应用程序而激活,并不为其他应用程序激活。在某些实施例中,三个值被标识为强度、密度,以及锐度,是基于三个因素:(I)强度设置(例如,轻的、中度的、强的)、(2)触觉主题(将用户接口事件映射到触觉效应)、以及(3)致动器类型。强度、密度和锐度值可以被生成并被保存在混响对象中。流程进行到335。在335,内置扬声器对象由混响对象生成。内置扬声器对象是内置扬声器模块302的实例,其中该内置扬声器对象配置为从混响对象接收音频数据帧,生成该音频数据帧的最大值,发送该音频数据帧的最大值给混响对象,发送该音频数据帧给IIR过滤器303以被过滤,生成正弦波周期载波频率,并混合该生成的正弦波周期载波频率与该过滤的音频数据帧,如之前关于图2所描述的。在某些实施例中,所生成并被保存在混响对象中的强度和密度值还可以被保存在内置扬声器对象中。流程进行到340。在340,混响对象将从音频轨道对象接收的PCM音频缓冲的音频数据帧,发送到内置扬声器对象。流程进行到345。在345,内置扬声器对象采样包含在音频数据帧中的数据。关于图4-7进一步更加详细地描述这种采样。流程进行到350。在350,内置扬声器对象将音频数据帧中包含的数据转变为单独的电压值(即,最大值)。这种转变还将关于图4-7进一步更加详细地描述。该内置扬声器对象接着返回该单独的电压值给混响对象。流程进行到355。在355,混响对象执行阈值(thresholding)任务。更特别地,混响对象确定从内置扬声器对象接收的音频数据帧的最大值是否大于指定阈值。该返回的最大值首先被线性映射到压力值,在一个实施例中它可以在O和10000之间变化。例如,阈值可以被指定为1000。在这个例子中,如果压力值大于1000,那么该音频数据帧被写到音频缓冲,并被随后发送给致动器。如果压力值小于或等于1000,那么该音频数据帧被“丢弃”(即,不写到音频缓冲),并且随后不发送到致动器。因此,根据该实施例,不是每个音频数据帧都需要在致动器播放。流程进行到360。在360,混响对象从音频缓冲读取音频数据帧,假设该音频数据帧没有在355被“丢弃”。流程进行到365。在365,混响对象发送存储在音频数据缓冲内的音频数据帧给内置扬声器对象。流程进行到370。在370,内置扬声器对象重复采样音频数据帧,例如,SKHz单音频。内置扬声器对象随后发送被再采样的音频数据帧给IIR过滤器303。流程进行到375。在375,IIR过滤器303低通过滤所接收的音频数据帧,例如,在500Hz。在例子中,通过低通过滤音频数据帧,IIR过滤器303过滤音频数据帧内低频信号的单频波段(例如,0-500HZ)。IIR过滤器303随后返回该被低通过滤的音频数据帧给内置扬声器对象。在可选实施例中,IIR过滤器303不是一种过滤器,而是一种变换模块(例如DSP处理、状态机,或其他类型的编程逻辑)。在这些可选实施例中,变换模块可以将接收的音频数据帧变换为一种新的音频数据帧,其中变换不一定是一种过滤变换。流程进行到380。在380,内置扬声器对象增强(boost)过滤的音频数据帧中所包含的音频数据信号。增强音频数据信号包括常量乘以音频数据信号的所有PCM值。流程进行到385。在385,内置扬声器对象在致动器谐振频率或任何想要的其他频率上生成正弦载波波形(也被标识为“正弦波周期载波频率”或“正弦波”),并混合该正弦载波波形与被过滤的音频数据帧内所包含的音频数据信号。更特别地,内置扬声器对象关于最大值(即,振幅)扫描被过滤的音频数 据帧,标识为A。接着,内置扬声器对象利用正弦函数(例如C ++编程语言sin()函数)来利用公式val = sin (2 * pi * frequency * phase)取回被过滤的音频数据巾贞的被计算的正弦值,其中frequency是被过滤的音频数据巾贞的频率,以及phase是过滤的音频数据帧的相位。随后,内置扬声器对象将被计算的正弦值(即,val)乘以过滤的音频帧的最大值或振幅(即,A)。这种计算生成完整的正弦载波波形。内置扬声器对象接着计算混合值,其中混合值表示被过滤的音频数据帧和整个正弦载波波形的混合。更特别地,内置扬声器根据公式final = (mix * bpSample) + ((1-mix) * (A * val))对象计算该混合值,其中final是表示被过滤的音频数据帧与整个正弦载波波形的混合的混合值,bpSample是被过滤的音频数据巾贞,mix是介于O和I之间的小数值,A是过滤的音频中贞的最大值或振幅,以及val是整个正弦载波波形被计算的正弦值。因此,根据实施例,被过滤的音频数据帧和整个正弦载波波形的混合通过确保表示被过滤的音频数据帧和整个正弦载波波形(即,final)的混合值永远不会大于1,而被标准化。可替换地,如果仅仅将被过滤的音频数据帧(即,bpSample)加上被过滤的音频帧(即,A)的最大值或振幅和整个正弦载波波形(即,val)计算得到的正弦值结果乘积,那么该结果得到强的、不希望的、并且嘈杂的触觉信号。这可以通过标准化被过滤的音频数据帧和整个正弦载波波形来避免,如上所述。内置扬声器对象然后将被过滤的音频数据帧和整个正弦载波波形的混合返回给混响对象。在其他实施例中,多个同时载波信号(以不同频率)可以用来生成高带宽输出信号。在这些实施例中,利用这里提供的算法扩展来执行单个载波的总和。流程进行到390。在390,混响对象在致动器利用被过滤的音频数据帧和整个正弦载波波形的混合来播放波形效应。通过在致动器播放波形效应,混响对象使致动器产生触觉效应。如前所述,触觉转换模块(例如图1的触觉转换模块16)处理包含在PCM音频数据缓冲内的音频信号。同样如前所述,音频信号的处理包括采用PCM音频数据缓冲的每个音频数据帧,为PCM音频数据缓冲的每个音频数据帧计算最大值,以及振幅过滤。现在更加详细地描述音频信号的这种处理。根据某些实施例,音频信号的包络首先被提取。可以利用原始音频信号或原始音频信号的过滤版本的所有频率来提取包络。然而,包络本身不具有和原始音频信号相同的
频率含量。在实施例中,音频数据帧从音频信号中得到。作为例子,音频数据帧可以具有Ims的帧长。作为另一个例子,音频数据帧可以具有IOms的帧长。Ims音频数据帧捕获频率大于500Hz的包络,但是不捕获较低的频率,并且“泄漏”通过。IOms帧捕获频率大于50Hz的包络等。在一个实施例中,帧中每个样本的绝对值被计算。在可选实施例中,计算帧中每个样本的平方,而不是绝对值。这种处理构成了由触觉转换模块(例如图1中的触觉转换模块16)执行的音频数据帧采样。绝对样本值(或可选实施例中的平方样本值)的最大值“V/’被计算。然后利用线性转换函数转换最大值“V/’,如下面关于图4描述的。图4示出了根据本发明的实施例的用来控制输出值范围的线性转换功能400。根据实施例,线性转换函数400可以被用来控制输出值“V/’的范围来获取新的值“V2”,如图4所示。根据示出的实施例,“X。”可以在给定的范围内变化,例如[2...20]。“Χ(ι”定义将被转换为新的值“V2”的最小值“V/’。“ymax”可以在给定的范围内变化,例如例子[60...255]。“ymax”定义最大被转换值“V’。如果“V’小于或等于“V’,则输出值“V’等于O。如果“V’大于“V’,则输出值“V’由“V’乘以函数的斜率得到。“V2”是收紧的(clamp)并且不会大于“Vmax”。在可选实施例中,还可以采用使用了( ,%)和(X1^max)的较为普遍的映射。这种处理构成了由触觉转换模块(例如图1中的触觉转换模块16)执行的音频数据帧的最大值计算。因此,根据实施例,音频信号的包络被映射到触觉信号的振幅,其中该触觉信号的振幅被过滤。在可选实施例中,该音频信号的包络首先被过滤,并且接着该音频信号的被过滤包络被映射到触·觉信号的振幅。现在更详细地描述由触觉转换模块(例如图1的触觉转换模块)执行的振幅过滤。触觉效应的振幅(或强度)“v3”是利用之前的值“v2”来计算的。在某些实施例中,“V3”可以被映射到一种频率。在其他实施例中,“v3”可以被映射到一组频率值。如果迭代“i”的“v2”小于迭代“1-1”的“v2”,那么输出“v3”可以被设置为零或者其他一些小的值,或者输出保持不变(“v3” = “v2”)。这种特殊的技术可以捕获表示触觉事件的信号峰值,并自动地将独立的触觉效应关联到触觉事件。这种技术还可以被用来在下一个触觉事件播放之前平息致动器,并且因此避免过度地给用户太多的触觉信息。在可选实施例中,当迭代“i”的“v2”小于迭代“1-1”的“V2”时,可以使用平滑衰减,而不是锐减到O。参数“锐度”,范围从0%到100%,其可以用来定义衰减的数量,将其应用于“V2”: V3 = V2X锐度/m,这里“m”是从I开始的整数,并且只要迭代“i”的“V2 ”小于迭代“1-Ι”的“V2 ”则递增。根据实施例,当迭代“i”的“V2”大于或等于迭代“1-1”的“V2”,或换句话说,当“V3” = “V,时,“m”被重置为I。在某些实施例中,在混响对象中产生并保存的锐度值被用作为锐度参数。图5示出了根据本发明实施例的基于数字音频信号生成的触觉效应的振幅的示例计算500。图5示出了在44100Hz采样的音频信号510,为20ms帧长计算的最大值520,以及由振幅过滤获得的脉冲530。根据实施例,脉冲530捕获音频信号510的包络,并且因此,脉冲530可以通过一个或多个触觉效应将这介信息传递给用户。图6示出了根据本发明实施例的数字音频信号的包络的示例计算600。图6示出了音频信号610,通过低通过滤音频信号610的绝对值获得的包络620,以及计算在特定帧,在本例中为20ms的最大值绝对值的包络值630。每个特定ms周期的帧都在频域中被处理。因此,在某些实施例中,帧的快速傅里叶变换(FFT)可以用来提取频谱。在其他实施例中,带通过滤器可以用来提取频谱。在实施例中,帧信息可以划分为低音或低频率(例如,小于200Hz),中频(例如,介于240Hz和4000KHZ之间),以及高频(例如,大于4400KHz),其中频含量和高频含量均利用信号的含量被提取。图 7示出了根据本发明实施例的基于频率含量的数字音频信号的包络的示例计算700。根据实施例,一旦音频数据帧如前所述地被处理,则获得最大值。实际上,三个最大值被获得,一个用于低频波段,一个用于中频波段以及一个用于高频波段。如图7所示出的,图表710表不未被处理的最大值(基于全部音频信号),图表720表不对应于音频信号的低频范围的最大值,图表730表示对应于音频信号中频范围的最大值,以及图表740表示对应于音频信号高频范围的最大值。根据实施例,当信号开始被处理时,第一帧包含较多的中频含量(即,图表730),考虑到获得的最大值大于低频波段(即,图表720)和高频波段(即,图表740)中的频率值。根据实施例,当帧的频率含量不同于之前帧的频率含量时,可以播放触觉效应。如图7中所示出的,触觉效应将在箭头701-707指示的位置处被播放。在可选实施例中,这类技术的变形可以包括:在具有如下振幅的每个频率变化处播放脉冲:未被处理的帧的最大振幅;对应于频率波段的最大振幅;在TouchSense软件中所允许的仅用于第一帧的最大振幅。在某些可选实施例中,如果下面的帧具有相同的频率含量,那么:该未被处理的帧的振幅可以被播放;或已被处理的帧的振幅可以被播放;或恒定振动(可能是小的)只要帧具有相同的频率含量就能被播放;或者基于频率波段中的功率含量来改变振幅。在某些可选实施例中,当发现具有不同频率含量的帧时可以播放不同的触觉效应。此外,人类对于声音的理解不是线性的,而是依赖于声音的频率。更特别地,人类对于低频比对高频更敏感。性别和年龄也影响理解。因此,在某些实施例中,可能存在增强特定频率的补偿因子。增强因子可以基于人类对声音的理解或者甚至在一些频率波段被人为提高时的用户选择。通常,软件可以提高高频含量,其中已知用户对声音具有较低的敏感度。这将允许对于特定波段的触觉效应变得更强,并且因此提高虽然被用户的听觉系统所感知和注意到、但可能没有足够的功率的声音。图8A示出了根据本发明实施例的在数字音频信号已经被过滤之前数字音频信号的振幅谱计算示例800。在计算示例800中,沿着X轴表示数字音频信号的频率,并且沿着y轴表示在数字音频信号的每个频率处功率的绝对值。如图8A所示,为所有频率表示一些振幅的功率。图SB示出了根据本发明实施例的在数字音频信号已经被过滤之后数字音频信号的振幅谱的计算示例810。如前所述,数字音频信号可以在给定音频缓冲中以低频信号的单独频率波段来过滤(例如,0-500HZ)。类似于计算示例800,沿着X轴表示数字音频信号的频率,沿着I轴表示数字音频信号的振幅的绝对值。然而,如图8B所示,振幅仅仅表示低频信号的单独被过滤的频率波段(即,0-500HZ)。在某些实施例中,触觉转换系统的用户可以定制声音-触觉效应转换系统。更特别地,用户可以选择是否利用低通过滤器、高通过滤器、或带通过滤器来过滤数字音频信号。可选地,除了定制过滤器类型,用户可以指定过滤器参数而不是在预定参数之间选择。根据这些实施例,触觉转换系统可以显示图形用户接口内的一个或多个用户定义的参数。利用该图形用户接口,用户可以接着从一个或多个用户定义的参数中选择或者指定一个或多个用户定义的参数。例如,用户可以从低通过滤器、带通过滤器、高通过滤器中选择声音-触觉效应转换算法中利用的过滤器类型。作为另一个示例,用户能够指定一个或多个截止频率,其中代替250和500Hz之间的值,用户可以指定任何值。仍然作为另一个示例,用户可以指定声音-触觉效应转换算法中使用的增益。在某些实施例中,不使用预先定义的过滤器参数,而是触觉转换系统可以基于用户定义的参数计算运行时的过滤器参数。更特别地,用户可以选择过滤器类型。例如,用户可以选择Butterworth设计、Bessel设计、或者Chebyshev设计,其中对于每个设计,用户可以选择低通过滤器、高通过滤器、带通过滤器、或带阻过滤器。如果用户选择Chebyshev设计,用户还可以指定脉动(ripple)。用户还可以指定过滤器顺序以及采样率。如果用户选择低通过滤器或高通过滤器,用户还可以指定拐点频率,并且如果用户选择带通过滤器或带阻过滤器,则用户可以选择两个拐点频率。用户还可以选择可选的附加零值,以及可选的振幅比例下限。此外,用户还可以选择过滤器是否由双线性变换方法设计,或由匹配的z变换方法设计。触觉转换系统能够基于用户指定的参数计算运行时的一个或多个过滤器参数。图9示出了根据本发明实施例的触觉转换模块(例如图1的触觉转换模块16)的功能性流程图。在910,接收音频信号的数据帧。在某些实施例中,当音频信号流向扬声器时,音频信号被截取。而且,在某些实施例中,音频信号是PCM音频缓冲。流程进行到920。在920,生成数据帧的最大值。在某些实施例中,通过采样数据帧来产生数据帧的一个或多个样本值以产生最大值,其中该最大值是一个或多个样本值的最大值。在一个实施例中,该一个或多个样本值是绝对值。在一个可选实施例中,该一个或多个样本值是平方值。在某些实施例中,该最大值是利用线性转换函数从原始的最大值转换的。流程进行到930。在930,数据帧被 变换。在某些实施例中,利用带通过滤器带通过滤数据帧。在这些实施例中,数据帧中频率信号的单独频率波段被过滤。在可选实施例中,利用II过滤器低通过滤数据帧。在这些实施例中,数据帧中的频率信号的单独频率波段被过滤。例如,波段0-500HZ可以被过滤。在某些实施例中,在数据帧被变换之前,数据帧被再采样。在某些实施例中,在数据帧被变换之后,含有数据帧的数字音频信号被增强。流程进行到940。在940,基于被变换的数据帧的最大值产生至少一个正弦载波波形。在某些实施例中,被变换的数据帧被扫描,以及被转换的数据帧的最大值被确定。接着,基于被变换的数据帧的频率,用正弦函数取回被变换的数据帧的计算出的正弦值,以及被变换的数据帧的相位。随后,计算出的正弦值乘以被变换的数据帧的最大值,从而生成至少一个正弦载波波形。在950,该被变换的数据帧与至少一个正弦载波波形混合以产生调制数据帧。在某些实施例中,根据公式该被变换的数据帧与至少一个正弦载波波形混合,其中被变换的数据中贞和至少一个正弦载波波形的混合被标准化(normalized)。在960,基于最大值和调制数据帧产生触觉信号。在某些实施例中,最大值确定是否产生该触觉信号,并且该调制数据帧定义触觉信号的精度。在某些实施例中,其中最大值确定是否产生该触觉信号,这时仅当最大值大于指定阈值时产生该触觉信号。流程进行到970。在970,通过致动器发送触觉信号来产生一个或多个触觉效应。在某些实施例中,触觉信号是波形效应。同样,在某些实施例中,产生和发送触觉信号进一步包括将调制数据帧作为参数传送给触觉效应播放模块的应用编程接口。因此,根据实施例,触觉转换系统截取作为音频信号一部分的音频数据帧,将音频数据帧转换为触觉信号,其中每个音频数据帧的最大值定义正弦波周期载波频率,其与每个被过滤的音频数据帧混合来定义触觉信号的波形,并且通过致动器播放被转换的触觉信号来产生触觉效应。由触觉转换系统执行的对每个音频数据帧的调制显现出存在致动器自身中的大量的精度以及真实感受,并且导致在致动器处播放的触觉信号更加灵活。
·
贯穿说明书描述的本发明的功能、结构、或特征可以以任何适合的方式在一个或多个实施例中被组合。例如,使用一个“实施例,” “一些实施例,” “特定实施例,” “某些实施例”或其它类型的语言,贯穿说明书是指如下的事实,结合实施例描述的特定的功能、结构、或特征可以被包括在本发明的至少一个实施例中。因此,出现的语句“一个实施例,I‘一些实施例,” “特定实施例,” “某些实施例”或其他类似的语言,贯穿本说明书不必都指代同一组实施例,并且描述的功能、结构、或特征可以以任何适合的方式在一个或多个实施例中被细合。本领域普通技术人员容易理解,以上讨论的本发明可以通过不同顺序的步骤,和/或不同于那些已经被公开的配置中的元件来实施。因此,尽管已经基于这些优选实施例描述了本发明,但是显然对本领域技术人员而言某些修改、变化、以及可选的结构是明显的,同时仍在本发明的主旨和范围之内。因此,可以参考给出的附加的权利要求以便确定本发明的边界和范围。
权利要求
1.一种将音频信号转换为一个或多个触觉效应的方法,该方法包括: 接收该音频信号的数据帧; 产生该数据帧的最大值; 变换该数据帧; 基于该被变换的数据帧的最大值产生至少一个正弦载波波形; 混合该被变换的数据帧与该至少一个正弦载波波形来产生调制数据帧; 基于该最大值和该调制数据帧产生触觉信号;以及 发送该触觉信号到致动器来产生一个或多个触觉效应。
2.如权利要求1所述的方法,其中该数据帧的该最大值确定是否产生触觉效应,并且其中该调制数据帧定义该触觉信号的精度。
3.如权利要求2所述的方法,其中仅当该数据帧的最大值大于指定阈值时,产生该触觉信号。
4.如权利要求1所述的方法,其中该触觉信号包括波形效应。
5.如权利要求1所述的方法,其中变换该数据帧包括带通过滤该数据帧。
6.如权利要求1所述的方法,其中变换该数据帧包括低通过滤该数据帧。
7.如权利要求1所述的方法,产生至少一个正弦载波波形进一步包括: 基于该被变换的数据帧 的频率和该被变换的数据帧的相位计算该被变换的数据帧的正弦值;以及 将计算出的正弦值乘以该被变换的数据帧的最大值。
8.如权利要求1所述的方法,其中根据公式混合该被变换的数据帧与至少一个正弦载波波形,其中该被变换的数据帧和该至少一个正弦载波波形的混合被标准化。
9.如权利要求1所述的方法,进一步包括利用该数据帧的快速傅里叶变换从该数据帧提取频率含量。
10.如权利要求1所述的方法,进一步包括利用带通过滤器从该数据帧提取频率含量。
11.如权利要求1所述的方法,进一步包括: 将该数据帧划分为低频含量、中频含量、和高频含量;以及 利用该数字音频信号的含量提取该中频含量和高频含量。
12.一种触觉转换系统,包括: 用于接收该音频信号的数据帧的装置; 用于产生该数据帧的最大值的装置; 用于变换该数据帧的装置; 用于基于该被变换数据帧的最大值产生至少一个正弦载波波形的装置; 用于混合该被变换的数据帧与该至少一个正弦载波波形来产生调制数据帧的装置; 用于基于该最大值和该调制数据帧产生触觉信号的装置; 用于发送该触觉信号到致动器来产生一个或多个触觉效应的装置。
13.如权利要求12所述的触觉转换系统,其中该数据帧的该最大值确定是否产生该触觉效应,并且其中该调制数据帧定义该触觉信号的精度。
14.如权利要求13所述的触觉转换系统,进一步包括装置用于仅当该数据帧的该最大值大于指定阈值时,产生该触觉信号。
15.如权利要求12所述的触觉转换系统,其中该触觉信号包括波形效应。
16.如权利要求12所述的触觉转换系统,进一步包括用于带通过滤该数据帧的装置。
17.如权利要求12所述的触觉转换系统,进一步包括用于利用该数据帧的快速傅里叶变换从该数据帧提取频率含量的装置。
18.如权利要求12所述的触觉转换系统,进一步包括用于利用带通过滤器从该数据帧提取频率含量的装置。
19.如权利要求12所述的触觉转换系统,进一步包括: 用于将该数据帧划分为低频含量、中频含量、和高频含量的装置;以及 用于利用该数字音频信号的含量提取该中频含量和高频含量的装置。
20.一种具有存储在其上的指令的计算机可读介质,当由处理器执行时,使得该处理器执行根据前述权利要求1-11中的一项的方法。
21.一种触觉转换系统,包括: 根据权利要求20的计算机可读介质; 处理器,耦合于该计算机可读介质,并配置为执行该计算机可读介质;以及 致动器,配置为输出 一个或多个触觉效应。
全文摘要
本公开涉及利用波形的声音到触觉效应转换系统。提供了一种触觉转换系统,其截取音频数据的帧,例如数字音频信号,将帧转换为触觉信号,并通过致动器播放该生成的触觉信号来产生触觉效应。该触觉信号基于每个音频数据帧的最大值,其定义该触觉信号的振幅。该触觉信号被应用到配置为接收该触觉信号的致动器,该致动器利用该触觉信号来产生一个或多个触觉效应。
文档编号G10L21/06GK103247296SQ20121013118
公开日2013年8月14日 申请日期2012年2月10日 优先权日2011年2月11日
发明者R·巴提亚, K·甘地, C·J·奥瑞奇, J·M·克鲁兹-埃尔南德斯, H·T·提蒙, J·H·F·劳 申请人:英默森公司