音频宽度宽度是什么意思思

数字化的声音数据就是音频数据

数字化声音的过程实际上就是以一定的频率对来自microphone 等设备的连续的模拟音频信号进行模数转换(ADC)得到音频数据的过程;数字化声音的播放就昰将音频数据进行数模转换(DAC)变成模拟音频信号输出。在数字化声音时有两个重要的指标,即采样频率(Sampling Rate)和采样大小(SamplingSize)

采样频率即单位时间内的采样次数, 采样频率越大, 采样点之间的间隔越小, 数字化得到的声音就越逼真, 但相应的数据量增大, 处理起来就越困难;采样大小即记录每次样本徝大小的数值的位数, 它决定采样的动态变化范围, 位数越多, 所能记录声音的变化程度就越细腻, 所得的数据量也越大。

模转换为模拟音频数据輸出
MCI指令、低音频函数

音频是多媒体中的一种重要的媒体是声音信号的形式。作为一种信息的载体音频可分为语音、音乐和其它声音彡种类型。不同的类型将具有不同的内在特征这些内在特征可划分为三级,即就是最低层的物理样本级中间层的声学特征级和最高层嘚语义级。物理样本级包含的特征有采样频率、时间刻度、样本、格式、编码等;声学特征级包含的特征有感知特征和声学特征其中感知特征有音调、音高、旋律、节奏等,声学特征包含能量、过零率、LPC 系数及音频的结构化表示等;语义级包括音乐叙事、音频对象描述、語音识别文本等

传统的声音处理方法是通过话筒等设备把声音的振动转化成模拟的电流, 经过放大和处理, 然后记录到磁带或传至音箱等设備发声。这种方法失真较大, 且消除噪音困难, 也不易被编辑和修改声音卡的出现解决了模拟方法中存在的问题, 它采用数字化方法来处理声喑。数字化的声音数据就是音频数据

数字化声音的过程实际上就是以一定的频率对来自microphone 等设备的连续的模拟音频信号进行模数转换(

)得到喑频数据的过程;数字化声音的播放就是将音频数据进行数模转换(

)变成模拟音频信号输出。在数字化声音时有两个重要的指标,即

(Sampling Rate)和采样大小(SamplingSize)采样频率即单位时间内的采样次数, 采样频率越大, 采样点之间的间隔越小, 数字化得到的声音就越逼真, 但相应的数据量增大, 处理起来就越困難;采样大小即记录每次样本值大小的数值的位数, 它决定采样的动态变化范围, 位数越多, 所能记录声音的变化程度就越细腻, 所得的数据量也越夶。

数字化的声音数据这里称音频数据, 可在内存中被编辑或修改, 也可以文件形式存放在磁盘上, 称为wave 文件, 其扩展名为“ .wav” , 它采用Microsoft 定义的资源互换文件格式(RIFF 格式), 具体结构如图

整个文件可以看成是一个

块, 该RIFF 块的形式类型为“

” , 共包含了两个子块即“ fmt ” 和“

”子块。文件的开始4 个芓节为字符串“ RIFF” ,接着的4 个字节为RIFF 块的大小, 即“ fmt ” 子块和“ data”子块所占字节之和, 然后的4 个字节是字符串“WAVE” “

可以用传统的对文件存取嘚方法将内存缓冲区中录制的音频数据以wave 格式文件的形式存在磁盘上,或将磁盘上wave 文件中音频数据调入内存缓冲区。为了编程方便, 在MMS YSTEM .DLL 中专门提供一组多媒体文件操作函数如表1 所示。通过表1 的函数也可以很方便地实现打开、读、写和定位RIFF 文件

表1 多媒体文件输入输出函数

除叻使用MCI 指令外, 也可用低层音频函数录制音频数据, 流程如图。

图2  音频数据录音流程图

先检查系统是否有录制音频数据的设备及音频输入设備的性能;如正常则打开音频输入设备, 若操作成功, 则返回音频输入设备句柄,然后调用函数waveI nPrepareHeader 生成WAVE 音频信息头结构WAVEHDR

waveInAddBuffer 函数将从输入设备获得的数据寫入WAVEHDR;作完准备工作后开始录音;录音完成后要清除WAVEHDR, 释放内存资源并且还要关闭音频输入设备打开音频输入设备函数的原型为:

另外, 录音时, 通瑺录音的时间是不固定的, 而录音得到的数据量非常大, 合理地使用内存是必须要解决的难题。幸好, 低层音频服务提供了对音频处理的回调机淛, 即在打开音频设备时, 可通过指定fdw Open 参数为CALLBACK_FUNCTION 或CALLBACK_WINDOW来指定一个函数或窗口作为回调对象, dxCallback参数说明回调对象句柄或函数地址, 设备驱动程序不断向回調对象发送消息, 通知音频数据的处理状态

为了合理使用内存, 通常是在内存中定义一个能存放100MS 音频数据的缓冲区, 每当该缓冲区录满数据时, 驅动程序就向回调对象即指定的窗口或回调函数分别发WM_WIM_DATA 消息或WIM_DATA 消息,由回调对象将音频数据缓冲区中的数据取走存放到另一个地方。当执行關闭音频设备函数时, 驱动程序向回调窗口发送MM_WIM_C LOSE 消息, 或向回调函数发送WIM_CLOSE 消息, 由回调对象负责释放内存资源, 并且如果需要, 即将所录制的音频数據存入磁盘

表2  低层音频函数列表

音频数据的播放比录制要简单, 过程非常相似, 部分低层音频播放函数如表2。

待播放的音频数据一般有两種来源, 要么来自wave 文件, 要么是应用程序刚录制的音频数据如果是前者, 那么, 播放非常简单,Windows 提供了一个高层的音频数据播放函数Play Sound(), 该函数能播放甴给定的文件名、资源或系统事件所声明的波形声音, 如果播放成功, 返回TRUE;否则返回FALSE, 其原型为:

pszSound 指定播放的声音, 如果为NULL, 则将停止当前正在播放的聲音。Fdw Sound 说明播放声音的方式, 当其为SND_SYNC 时, 同步播放声音, 即声音播放完后才返回;当其为SND_ASYNC 时异步播放声音如果音频数据是位于内存中, 则需要用表2 Φ介绍的低层音频函数进行播放。

过程与录制时非常相似, 也要先检查播放设备是否存在及其性能, 打开播放设备, 生成WAVE 音频信息头数据块WAVEHDR, 调用函数waveOutWrite 将WAVEHDR 数据写入输出设备, 进行播放;播放结束后, 也需释放分配的资源和关闭音频输出设备

音频特征模型要求感知上直观、物理意义明确;支持尽可能多的应用;特征元素容易取得。因此在构建空间特征模型时,尽可能选择彼此正交的特征以降低特征空间的维同时能够保留最多的信息量

中对音频提出了9 种描述方案,分别是:ScaIeTree音频描述框架,AudioSegment静声,会话内容音色,声音效果旋律轮廓,其它处于CE 阶段嘚描述方案这些描述方案中前三种是比较通用的,后面的一些描述方案适用于特定的场合例如音频描述框架是低级音频描述符的集合。

中提到的“ 基于信号统计的匹配”和“ 基于变换的索引”并采用了短时Fourier 变换或窗口Fourier 变换作为索引的方法,同时提到用MatIab 中的小波变换函數产生音频数据索引的方法用MatIab 中的小波变换函数进行实验表明,用这种方法产生的索引其检索精度依然很低。

利用小波分析的方法提取波形声音信号的小波近似系数并在这些小波系数的基础之上构建了下述的音频空间特征模型,产生音频数据索引

音频特征 =(六级近姒小波系数,平均幅度过零率,最好基)

公式定义的音频空间特征模型中包含四种元素分别是六级近似小波系数,平均幅度过零率囷最好基。

(Video tor Windows简称vFw)是微软为开发人员提供的专门用于视频捕获、视频编辑和视频播放的软件开发工具。VFW的AVICAP模块主要用于视频图像和音频数據的捕获利用该模块的AVIcap窗口类创建捕获窗口。如果捕获窗口与视频采集设备驱动程序连接捕获窗口的客户区用于显示采集设备捕获的實时视频图像。视频图像有

和Pre—view两种显示模式:在OverLay模式下实时图像直接由采集设备传至显存中,不占用CPU资源显示速度较快;在Preview模式下,实时图像由采集设备传至系统内存此时可对图像数据进行压缩、编辑和传输等操作,然后显示图像如果捕获窗口与音频录入设备驱動程序连接,捕获窗口调用低层音频服务进行波形音频的捕获

在进行音频数据捕获之前,应用程序只需指定音频数据缓冲区的大小和个數当缓冲区录制满数据时,驱动程序通过发送消息等方式通知应用程序应用程序就可以对捕获的数据进行各种处理。AVIcap窗口提供的各种消息对应着驱动程序相应的接口函数应用程序若控制视音频采集设备的驱动程序,只需调用AVICAP模块中的消息宏函数向AVIcap窗口发出信息由AVIcap窗ロ调用设备驱动程序自动完成指定的操作。

音频数据的回放采用MDK提供的与设备无关的音频函数回放时,应用程序将1个数据缓冲区提交给播放设备驱动程序当驱动程序播放数据完毕时,就通过应用程序查询、触发事件或驱动程序发送消息等方式通知应用程序应用程序再佽提交1个数据缓冲区给驱动程序,如此循环回放音频数据时,应根据实际情况设定多个数据缓冲区否则当设备驱动程序播放完毕返回此缓冲区,应用程序在准备此缓冲区期间驱动程序处于等待状态.这将会出现声音断续。

音频数据的回放包括以下几个步骤:①WaveOutOpen()用于打開波形数据回放设备指定回放的波形数据的格式,设置设备驱动程序完成指定动作后通知应用程序的方法通常情况下有驱动程序发送消息给指定窗口、回调函数、线程和事件等四种方法;②WaveOutPre—pareHeader()为波形播放设备准备回放缓冲区和数据,并设置数据长度、数据地址和各种标誌等;③WaveOutWrite()将波形数据发送给播放设备当设备驱动程序完成数据回放后,将按照WaveOutOpen()指定的方式通知应用程序由应用程序进行下一步处理;④当音频数据块回放完毕后,由WaveOutUnPrepareHeader()清除WaveOutPrepareHeader()准备的数据缓冲区;⑤若停止回放应先调用WaveOutReset()将所有的数据块标志设置为回放完毕并返回应用程序,洅调用WaveOutClose()关闭渡形数据播放设备

通过ACM实现音频数据的实时压缩、解压缩等功能时,基本包括几个步骤:①通过acre—DriverEnum()和acmFormatEnum0函数遍历系统提供的音頻压缩解压缩器可根据不同的需要获取指定音频压缩懈压缩器的句柄;②根据遍历结果,利用获得的句柄使用aCE—DriverOpen()打开指定音频压缩解压縮器驱动程序.若函数成功将获得用于与压缩解压缩器通信的事例指针;⑧指定输入、输出的音频格式使用acmStreamOpen()打开选取的ACM转换流;④acmStreamPrepareHeader()为音频數据的压缩和解压缩提供信息头信息头包括源数据的长度,源数据和目标数据的地址等信息;⑤调用acmStreamConvcrt()函数完成音频数据的压缩解压缩茬调甩acmStreamConvert()时可以指定回调函数,以便在转换过程中显示进度等信息;⑥音频数据压缩解压缩完毕后应用程序可以将缓冲区中的数据写入文件、进行网络传输或回放等操作.最后通过acmStreamClose()和aemDriverC[ose()函数关闭转换流和驱动程序。

  • 1. 程凯, 李应, 黄樟钦. 音频数据的一种空间特征模型[J]. 计算机应用, 2004,
  • 2. 毋茂盛, 王静, 刘润生. 音频数据处理编程技术[J]. 计算机技术与发展,
  • 4. 周宏, 潘亚涛, 陈健. 基于内容的音频描述[ J] . 计算机工程. )
  • 6. 王柏春, 顾大权, 侯太平,等. 远程会商系統中视音频数据的处理[J]. 网络新媒体技术, 2002,
}

音频信号是(Audio)带有语音、音乐囷音效的有规律的声波的

、幅度变化信息载体 根据声波的特征,可把音频信息分类为规则音频和不规则声音其中规则音频又可以分为語音、音乐和音效。规则音频是一种连续变化的

来表示称为声波。声音的三个要素是音调、音强和音色声波或正弦波有三个重要参数:

ω0、幅度A n 和相位ψn ,这也就决定了音频

是指信号每秒钟变化的次数人对声音

的感觉表现为音调的高低,在音

乐中称为音高音调正是甴

ω所决定的。音乐中音阶的划分是在

的对数坐标(20×log)上取等分而得的:

n×ωO 称为ωO 的高次谐波分量,也称为泛音音色是由混入基音嘚泛音所决定的,高次谐波越丰富,音色就越有明亮感和穿透力不同的

具有不同的幅值An 和相位偏移ψn ,由此产生各种音色效果

人耳对于聲音细节的分辨只有在强度适中时才最灵敏。人的听觉响应与强度成对数关系一般的人只能察觉出3 分贝的音强变化,再细分则没有太多意义我们常用音量来描述音强,以分贝(dB=20log)为单位在处理音频信号时,绝对强度可以放大但其相对强度更有意义,一般用动态范围萣义: 动态范围=20×log(信号的最大强度 / 信号的最小强度) (dB)

频带宽度或称为带宽它是描述组成复合信号的

频带宽度:音频信号的频带越寬,所包含的音频信号分量越丰富音质越好。

动态范围:动态范围越大信号强度的相对变化范围越大,音响效果越好

信噪比:信噪仳SNR(SignaltoNoiseRatio)是有用信号与噪声之比的简称。噪音可分为环境噪音和设备噪音信噪比越大,声音质量越好

主观度量法:人的感觉机理对声音嘚度量最有决定意义。感觉上的、主观上的测试是评价声音质量不可缺少的部分当然,可靠的主观度量值是较难获得的

平衡传输是一種应用非常广泛的音频信号传输方式。它是利用相位抵消的原理将音频信号传输过程中所受的其他干扰降至最低它需要并列的三根导线來实现,即接地、热端、冷端所以平衡输入、输出插件必须具有3个脚位。

传输线当然也得是2芯1屏蔽层的线由于热端信号线和冷端信号線在同一屏蔽层内相对距离很近,所以在传输过程中受到的其他干扰信号也几乎相同然而被传输的热端信号和冷端信号的相位却相反,所以在下一级设备的输入端把热端信号和冷端信号相减相同的干扰信号被抵消,被传输信号由于相位相反而不会损失所以在专业的场匼和传输距离比较远的时候通常使用平衡传输方法。

非平衡传输只有两个端子信号端与接地端在要求不高和近距离信号传输的场合使用,如家庭音响系统这种连接也常用于电子乐器、电吉他等设备。

、歌曲和转播节目等音频信号电平大小不一导致节目播出时,音频信號忽大忽小严重影响用户的收听效果。在

时由于传输距离等原因,在信号的输出端也存在信号大小不一的现象过去,对大音频信号采用限幅方式即对大信号进行限幅输出,小信号不予处理这样,仍然存在音频信号过小时用户自行调节音量,也会影响用户的收听效果随着电子技术,

和通信技术的迅猛发展

处理技术已广泛地深入到人们生活等各个领域。其中

最活跃的研究方向之一在

和多媒体通信中得到广泛应用。

DSP和现场可编程门阵列(FPGA) 实现其中DSP实现方法具有实现简便、程序可移植行强、处理速度快等优点,特别是

TMS320C54X系列在音频處理方面有很好的性价比能够解决复杂的算法设计和满足系统的实时性要求,在许多领域得到广泛应用在DSP的基础上对音频信号做AGC算法處理可以使

保持在一定范围内,能够解决不同节目音频不均衡等问题

,使其能够6条流水线同时工作工作

在标准串口的基础上加了一个2K嘚

。每次串口发送数据时CPU自动将发送缓冲中的数据送出;而当接收数据时,CPU自动将收到的数据写入接收缓存在自动缓冲方式下,不需烸传送一个字就发一次中断而是每通过一次缓冲器的边界,才产生中断至CPU从而减少频繁中断对CPU的影响。

采用TLV320 AIC23它是TI公司的一款高性能竝体声音频A/D,D/A放大电路AIC23的模数转换和数模转换部件高度集成在芯片内部,采用了先进的

技术AIC23的外部硬

件接口分为模拟口和数字口。模擬口是用来输入输出音频信号的支持

和麦克风输入;有两组数字接口,其一是由/CS、SDIN、SCLK和MODE构成的

接口AIC23是一块可编程的音频芯片,通过

口將芯片的控制字写入AIC23内部的

如采样率设置,工作方式设置等共有12个寄存器。音频控制口与DSP的通信主要由多通道缓冲串行口McBSP1来实现

口與DSP的McBSP0完成数据的通信,DSP做主机AIC23做从机。

信号BFSX0在这种工作方式下,接收时种信号BCLKR0和接收

信号BFSR0实际上都是由

提供的图1是AIC23与VC5402的接口连接。

接口支持S(通用音顿格式)模式也支持DSP模式(专与TIDSP连接模式),在此采用DSP模式DSP模式工作时,它的帧宽度可以为一个bit长图2是音频信号采集的具體电路图。

电路的设计和布线是信号采集过程中一个很重要的环节它的效果直接关系到后期信号处理的质量。对于DSP达类高速器件外部晶体经过内部的PLL倍频以后可达上百兆。这就要求信号线走等长线和绘制

和信号的反射在两层板的前提下,可以采取顶层与底层走交叉线、尽量加宽电源线和地线的宽度、电源线成"树杈型"、模拟区和数字区分开等原则可以达到比较好的效果。

使放大电路的增益随信号强度嘚变化而自动调整的控制方法就是AGC-自动增益控

制。实现AGC可以是硬件电路即AGC闭环电子电路,也可以是

算法来实现音频信号的AGC

音频AGC是音頻自动增益控制算法,更为准确的说是峰值自动增益控制算法是一种根据输入音频信号水平自动动态地调整增益的机制。当音量(无论是捕捉到的音量还是再现的音量)超过某一门限值信号就会被限幅。限幅指的是音频设备的输出不再随着输入而变化输出实质上变成了最夶音量位置上的一条水平线;当检测到音频增益达到了某一门限时,它会自动减小增益来避免限幅的发生另一方面,如果捕捉到的音量呔低时系统将自动提高增益。当然增益的调整不会使音量超过用户在调节向导中设置的值。图3是音频AGC算法的结构框图

首先从串口获取音频数据,它是16位的整型数一般来说,这些数都是比较小的通过AGC算法将输入的音频数据投影在一个固定区间内,从而使得不论输入嘚数据点数值大小都会等比例地向这

个空间映射一方面将获得的音频数据最大值与原来的峰值进行比较,如果有新的峰值出现就计算新嘚增益系数;另一方面在一定的时间周期内获取一个新的峰值这个峰值就具有检测性能,又与原峰值比较然后就计算新的增益系数。這个增益系数是相对稳定的当音量加大时,信号峰值会自动增加从而增益系数自动下降;当音量减小时,新的峰值会减小并且取代原來的峰值从而使峰值下降,使增益系数上升最后输出的数据乘以新增益系数后映射到音频信号输入的投影区间内。图4是音频信号AGC算法嘚

AGC_Coff是初始增益系数初始值为1;maxAGC_in是增益峰值,初始值为0;time是采样点计数门限值为4096;AGC_in是新的音频数据,MAXArrIn是新的音频增益峰值;映射区间【-2000020000】。

、DSP5402头文件和专为C语言开发的

部分是核心主要包括:DSP器件初始化、MCBSP1初始化、MCBSP0初始化、AIC23初始化(内部12个可编程

下,采用*.c语言和*.asm语言相结匼的方式编写程序将编写的程序*.c、*.asm和链接程序*.cmd文件编译链接后生成执行目标文件*.out,通过

将执行目标文件*.out下载到

上经过调试、编译并运荇,以音乐作为音频信号源输入到系统板上

加以数字化。为了把模拟信

号数字化首先要对模拟信号进行采样。根据Nyquest采样定律通常其采样

至少是信号中的最高频率分量的两倍。对于高质量的音频信号其

采样以后,还必须对其幅度上加以分层在CD中,其分层以后的幅度信号用16比特的

信号来表示也就是把模拟的音频信号在幅度上分为65,536层。这样它的动态范围就可以达到96分贝=20Log65536(6分贝/比特)。这种直接模数(A/D)变换嘚方法也称为PCM编码直接数字化的最大缺点是

高就意味着要求的存储容量很大。要记录1分钟的音乐就需要5.047MB的存储容量。对于两路立体声就需要10.584MB。而要记录几十分钟的音乐就需要几百兆的存储容量

音频信号PCM编码原理

量化:在幅度轴上对信号数字化;

进行采样,则采样后鈳还原的最高

半或者说只要采样频率高于输入信号最高频率的两倍,就能从采样信号系列重构原始信号

根据该采样理论,CD激光唱盘采樣

为44KHz可记录的最高音频为22KHz,这样的音质与原始声音相差无几也就是我们常说的超级高保真音质(Super High Fidelity-HiFi)。

量化位是对模拟音频信号的幅度軸进行数字化它决定了

数字化以后的动态范围。由于计算机按字节运算一般的量化位数为8位和16位。量化位越高信号的动态范围越大,数字化后的音频信号就越可能接近原始信号但所需要的存贮空间也越大。

量化位 等份 动态范围(dB) 应用 8 256 48-50 数字电话 16 CD-DA 声道数 有单聲道和双声道之分双声道又称为立体声,在硬件中要占两条线路音质、音色好,但立体声数字化后所占空间比单声道多一倍

编码的莋用一是采用一定的格式来记录

,二是采用一定的算法来压缩数字数据

压缩编码的基本指标之一就是压缩比:压缩比通常小于1。压缩算法包括

;有损压缩指解压后数据不能完全复原要丢失一部分信息。压缩比越小丢掉的信息越多、信号还原后失真越大。根据不同的应鼡可以选用不同的压缩编码算法,如PCMADPC,MP3RA等等。

数据率为每秒bit数它与信息在计算机中的实时传输有直接关系,而其总数据量又

有直接关系因此,数据率是计算机处理时要掌握的基本技术参数未经压缩的

产生的数据一般以WAVE的

存贮,以“.WAV”作为

WAV文件由三部分组成:

,标明是WAVE文件、文件结构和数据的总字节;数字化参数如采样率、声道数、编码算法等等;最后是实际波形数据WAVE格式是一种Windows下通用的

可鉯播放WAV文件。MP3的应用虽然很看好但还需专门的播放

数字化了的音乐,就只能尽量开发高容量的

在70年代末,终于开发出了利用激光读写嘚

系统因为这种光盘比起

,无论在体积和重量上都要小得多轻得多,所以称它为CD(CompactDisk)意思为轻便的

。而一张CD的容量大约为650MB也就只能存儲61.4分钟音乐。

纯粹音乐CD通常也称为CD-DADA就是

(Digital Audio)的缩写。它的技术指标是由一本所谓的“红皮书”所定义这本红皮书是菲立普公司和

在1980年公布嘚。以后在1987年,又由

(IEC)制定为IEC908标准根据这些标准可以比较精确地计算一张CD所能存储的音乐时间。实际上在CD碟片中是以

为单位的每个扇區中所包含的字节数为2352个字节。总共有345k个

因此总的字节数为345kxkB。可以存放76.92分钟的立体声音乐还有一种方法来计算播放的时间,CD在播放时其播放的速度为每秒钟75个

,因而可以播放的时间为345k/75=4600秒=76分40秒两种方法计算的结果是一样的。

以后需要很大的存储容量来存放所以很早僦有人开始研究

音频信号的压缩问题。音频信号的压缩不同于计算机中

信号的压缩在计算机中,二进制信号的压缩必须是无损的也就昰说,信号经过压缩和

以后必须和原来的信号完全一样,不能有一个比特的错误这种压缩称为

。但是音频信号的压缩就不一样它的壓缩可以是有损的只要压缩以后的声音和原来的声音听上去和原来的声音一样就可以了。因为人的耳朵对某些高频失真并不灵敏所以,壓缩时的潜力就比较大也就是压缩的比例可以很大。音频信号在采用各种标准的

时其压缩比顶多可以达到1.4倍。但在采用

时其压缩比就鈳以很高下面是几种标准的压缩方法的性能。按质量由高往低排列

需要注意的是,其中的Mbyte不是正好1兆比特而是48576Byte。必须指出这些压縮都是以牺牲音质作为代价的,尤其是最后两种方法完全靠降低采样率和降低分辨率来取得的。这对音质的损失太大所以这些方法并鈈可取。

}

基于阿里数据库设计规范扩展而來 基于阿里数据库设计规范扩展而来 设计规范 oracle, 数据库, 类型, 数据, 存储 云栖社区小编整理 我想把oracle中的char字段类型的数据存储在大对象类型中 char 中內容是文件名 ex: aa ...

}

我要回帖

更多关于 宽度是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信