单通道语音增强之综述

单通道语音增强之综述,第1张

单通道语音增强是语音信号处理中广泛研究的课题,主要作为前端去噪模块应用在提升音质、语音通信、辅助听觉、语音识别等领域。 单通道语音增强问题定义主要包括两个方面:

不包括:

单通道语音增强传统的方法是滤波和统计信号处理,比如WebRTC的噪声抑制模块就是用维纳滤波。 这些传统的方法基本都在 《语音增强--理论与实践》一书中有详细讲解。

近几年机器学习方法兴起,也逐渐成为语音增强的主要研究方向,各种新型神经网络的方法都被尝试用在语音增强领域。这些新方法主要看近几年的InterSpeech会议、ICASSP会议和IEEE的期刊。

下面先对单通道语音增强号的基本处理步骤做个简单介绍。

假设麦克风采集到的带噪语音序列为 ,并且噪声都是加性噪声。则带噪语音序列为无噪语音序列与噪声序列的和。 原始语音信号与噪声均可视为随机信号。

语音信号的处理一般都在频域,需要对带噪信号 进行分帧、加窗、短时傅里叶变换(STFT)后,得到每一帧的频域信号,其中X,Y,D分别是干净语音、带噪信号和噪声的频域信号。

语音增强的目标是对实际信号 的幅度和相位进行估计。但是因为相位不易估计、而且研究表明相位对去噪效果影响比较小\cite{wang1982unimportance},所以大部分方法都只对幅度谱进行增强,而相位则沿用带噪信号的相位。

换句话说,语音增强就是要找出一个频域的实函数 , 并且将这个函数与带噪信号相乘,得到干净语音的估计。这个实函数称作抑制增益(Suppression Gain)。

下面是单通道语音增强系统主要步骤的示意图,系统目标就是估计抑制增益,而抑制增益依赖于两个核心步骤:语音检测VAD和噪声估计模块。只有准确估计噪声谱 ,才有可能准确估计抑制增益。 详细的VAD和噪声估计方法不在这篇文章里面详述,具体可以看参考文献。 一种简单的想法是先估计出VAD,如过判断此帧没有语音,则更新噪声谱,否则就沿用上一帧的噪声谱。

综上,语音增强的典型流程就是:
1 对带噪语音y[n]分帧, 每一帧进行DFT得到 。
2 利用 进行VAD检测和噪声估计。
3 计算抑制增益 。
4 抑制增益 与带噪信号谱相乘,得到纯净语音谱
5 对 进行IDFT,得到纯净语音序列的估计 。

噪声估计模块可以估计噪声功率,也可以估计信噪比,避免信号幅度变化带来的误差。
定义后验信噪比为,带噪语音与噪声功率之比:

定义先验信噪比,为纯净语音与噪声功率之比:

谱减法是最直观的去噪声思想,就是带噪信号减去噪声的频谱,就等于干净信号的频谱。估计信号频谱的表达式如下,其中 应是噪声估计模块得到的噪声频谱。

假设语音信号与噪声不相关,于是得到估计的信号功率谱是测量信号功率谱减去估计的噪声功率谱。

因此抑制增益函数即为:

维纳滤波的思想也很直接,就是将带噪信号经过线性滤波器变换来逼近原信号,并求均方误差最小时的线性滤波器参数。维纳滤波语音增强的目标就是寻找系数为实数的线性滤波器,使得滤波偶信号与原干净语音信号之间的均方误差最小。这是一个优化问题,目标是求使得均方误差最小的参数

Gain用先验信噪比表示

见博文 《单通道语音增强之统计信号模型》 。

待补充。

话音激活检测(Voice Activity Detection, VAD) 将语音帧二分为“纯噪声”和“语音噪声混合”两类。 说话人静音、停顿都会出现多帧的纯噪声,对这些帧无需估计语音信号,而可以用来估计噪声功率。 语音帧经过VAD分类后,进行不同的处理:

:不含语音帧,更新噪声功率估计和Gain, 进行抑制;

:包含语音帧,沿用上一帧的噪声功率和Gain,进行抑制。

语音存在概率SPP(Speech Presence Probability,SPP) 跟VAD作二分类不同,利用统计模型对每一帧估计出一个取值在[0,1]的语音存在概率,也就是一种soft-VAD。 SPP通常跟统计信号模型结合起来估计最终的Gain。

一种估计SPP的方法是根据测量信号 估计每个频点的语音存在的后验概率,也就是

根据贝叶斯公式:

定义语音不存在的先验概率 为 , 语音存在的先验概率 为 。假设噪声与语音信号为零均值复高斯分布。最终可以得到SPP计算公式:

其中为 为条件信噪比,有 及 。

语音不存在的先验概率 可以采用经验值,如05,或者进行累加平均, 也可以参考《语音增强—理论与实践》中更复杂的算法。

最小值跟踪发的思想是,噪声能量比较平稳, 带语音的片段能量总是大于纯噪声段。 对于每个频点,跟踪一段时间内最低的功率,那就是纯噪声的功率。

为了使功率估计更稳定,通常要对功率谱进行平滑处理:

然后寻找当前第 帧的最低功率 。简单的方法是直接比较前 帧的功率,得到最小值,计算速度较慢。
还有一种方法是对 进行非线性平滑,公式如下。

参数需要调优,可以参考文献中提供的取值: 、 、 。

这种估计方法的思路是,噪声的能量变化比语音稳定,因此按频点统计一段时间内的能量直方图,每个频点出现频次最高的能量值就是噪声的能量。 主要包括以下几个步骤:

1计算当前帧的功率谱

2计算当前帧前连续D帧功率谱密度直方图,选择每个频点k的频次最高的功率值

3滑动平均,更新噪声功率谱密度

当前帧的SNR很低,或者语音出现概率很低时,意味着当前信号功率很接近噪声功率,我们可以用当前帧的功率谱与前一帧估计的噪声功率进行加权平均,从而更新噪声功率谱。这就是递归平均法,通用的公式是:

算法的核心变成了计算参数 ,研究者提出了不同的方法,比如可以根据后验信噪比 计算参数:

用 和 分别代表当前帧包含语音和不包含语音,从概率论的角度,当前帧的噪声功率期望值为:

其中,当前帧不存在语音时,噪声功率就是信号功率,所以
。当前帧存在语音时,可以用前一帧估计的噪声功率来近似,
。噪声的递归平均算法转化为求当前帧每个频点的语音存在/不存在概率问题:

比照递归平均的通用公式,也就是
。 使用前一节介绍的语音存在概率SPP计算方法求
即可。

MCRA是一种将最小值跟踪与基于语音概率的递归平均结合起来的算法,核心思想是用当前帧功率谱平滑后与局部最小功率谱密度之比来估计语音概率。

以某阈值 对语音概率 进行二元估计

语音概率也可以进行平滑:

另外,如果将语音不存在是的噪声估计也做滑动平均,也就是


可以得到最终的噪声概率估计公式:

后验信噪比的估计比较直接,就是带噪信号功率与估计噪声功率之比: 。然后 。

先验信噪比是纯净信号功率与噪声功率之比,无法直接得知,需要更进一步估计。一种方法是简单谱减法,从功率角度 。 因此

更精确的方法是判决引导法(Decision-directed approach), 滑动平均

参考文献

[1] P C Loizou, Speech enhancement: theory and practice CRC press, 2007

马自达6 超豪华型 重要参数 款式年份 2007排气量(l) 1999长/宽/高(mm) 4670/1780/1435功率(Kw(ps)/rpm) 108(147)/6500轴距(mm) 2675最大扭矩(N·m/rpm) 183/4000车门数 4最高转速(rpm) 6500座位数(个) 5环保标准 欧III车体结构 承载式->三厢油耗(l/100Km) 90km/h等速->60变速器形式 手自一体保修政策 3年/6万公里驱动方式 前置前驱随车附带物品文件 使用手册,保修卡,随车工具等 长/宽/高(mm) 4670/1780/1435后排内部宽度(mm) 1460轴距(mm) 2675前排坐垫长度(mm) 440前轮距(mm) 1540后排坐垫长度(mm) 440后轮距(mm) 1540后备厢开口宽度/离地高度(mm) 1100/620最小离地间隙(mm) 150前排腿部空间(mm) 760-1000接近角(°) ---后排腿部空间(mm) 760-1000离去角(°) ---第三排内部高度(mm) ---车顶形式 天窗第三排腿部空间(mm) ---车身颜色 钛灰、云层银、北极白、珠光黑、碳灰、经典红、瀚海蓝、紫晶檀内饰材料 PVC车漆 金属漆/普通漆内饰贴面材料 黑色仿桃木车门数 4前座中央扶手 有座位数(个) 5后座中央扶手 有玻璃类型 绿色隔热玻璃行李舱容积(l) 500天窗描述 内藏->有遮阳板行李舱开合方式 遥控->上掀天窗开合方式 电动行李舱灯 有车篷开合方式 ---仪表板显示形式 数字/模拟车篷开合时间(s) ---仪表板背光颜色 红行李架 无仪表板灯亮度可调 可调前雨刷器 双雨刷->无雨量传感器座椅表面材料 真皮后雨刷器 无前排座椅调节方向 8方向->驾驶座整备质量(Kg) 1427座椅调节形式 电动承载质量(Kg) 455后座头枕 有车体结构 承载式->三厢前/后排座椅加热 无车壳材料 钢前/后排座椅腰部支撑调节 有底盘保护 底盘封塑座椅调节记忆位置组数 3前悬挂形式 双叉臂独立悬架座椅按摩/通风功能 无后悬挂形式 多连杆独立悬架运动座椅 无减振器类型 液压后排座放倒比例(%) 4/6可拆分折叠车身高度可调 不可调前悬挂d性元件 螺旋d簧前排内部高度(mm) 880后悬挂d性元件 螺旋d簧后排内部高度(mm) 840后排座椅调节方向 0前排内部宽度(mm) 1450- 风阻系数(Cd) 029功率(Kw(ps)/rpm) 108(147)/6500敞篷风阻系数(Cd) ---最大扭矩(N·m/rpm) 183/4000最高车速(Km/h) 201最高转速(rpm) 6500电子限速 无压缩比 10最大爬坡度(%) ---发动机特有技术 S-VT(VVT) 可变气门正时控制系统 ,VIS可变进气歧管系统,VAD可变进气道 ,VTCS可变涡流控制系统最大涉水深度(m) ---增压方式 无加速时间(s) 0-100Km/h->97升功率(Kw/l) 5403定速巡航系统 无缸体材料 全铝制动距离(m) 100Km/h-0->37缸盖材料 全铝变速器形式 手自一体比功率(Kw/Kg) 00757挡杆位置 地排发动机工况图 挡位数(个) 5燃油供给方式 多点电喷主减速比 3863环保标准 欧III分动器类型 ---三元催化 有中央差速器锁 无燃油类型、标号 93#及以上无铅汽油前桥差速器锁 无油箱容积(l) 64后桥差速器锁 无油耗(l/100Km) 90km/h等速->60发动机厂家型号 LF气缸排列形式 直列驱动方式 前置前驱凸轮轴位置 顶置排气量(l) 1999每列汽缸凸轮轴数量 双缸数(个) 4可变气门正时 无级可调每汽缸气门数(个) 4可变气门行程 无 前轮胎规格 205/55R16牵引力控制系统 无后轮胎规格 205/55R16电子差速制动 无轮辋材料 铝ABS刹车防抱死系统 有轮辋规格 7J16其它 无备胎规格及数量 全尺寸备胎->1前制动器类型 盘式备胎放置位置 内藏式后制动器类型 盘式胎压监测装置 无驻车制动器形式 前排座椅中间零压续行 无最小转弯直径(m) 115后排安全带 有动力助力转向 有安全带预收紧功能 有助力转向调节 有安全带位置可调 可调转向机类型 齿轮齿条式气囊气帘个数 8前照灯类型 卤素驾驶位气囊 有前照灯照射高度车内调节 有侧气帘(气囊) 有高位(第三)刹车灯 有副气囊锁止功能 有前雾灯 有制动力自动分配 有前灯自动清洗功能 无驱动防滑系统 无车外灯光关闭延迟 无电子稳定程序 无防盗系统 有主动车身控制系统 无副驾驶位气囊 有 车内中控锁 有车内灯光关闭延时 有前电动窗 有后门开启方式 手动->侧开前电动窗防夹手功能 有电池规格 12V/40Ah后窗遮阳帘 无车内12V电源 无遥控油箱盖 有后座空调 无杯架数(个) 6压缩机数量(个) 1后视镜电动调节 有温区个数(个) 1后视镜加热功能 无空调系统 有后视镜折叠功能 有空调控制方式 自动后挡风加热功能 有外循环空气过滤器 有后视镜防眩目功能 有主机功能 CD/收音机车载电视 无扬声器数量(个) 6车载电话 无扬声器布置方式 前门各2个,后门各1个泊车辅助系统 雷达辅助CD数量及CD盒位置 6->中控台车载罗盘 无视频系统 无车外温度显示 有怠速噪音dB(A) 366车内阅读灯 有等速噪音dB(A) 80km/h->66无线上网功能 无后电动窗 有车载冰箱 无后电动窗防夹手功能 有GPS导航系统 无-

作为区块链项目,VDS是一个基于区块链的分布式隐私互联网的多项研究成果的整合。它将在身份安全,网际自由,隐私社交,去中心化金融和商业方面发挥重要作用。可以说,VDS所做的是在分布式匿名节点上重建一个全新的,开放性互联网,这将引领我们去往一个前所未有的自由空间,V-Dimension(五次元空间)。

VDS的初始功能是共振交易,信任钢印网络,竞赛系统,信息全网广播 (VAD),隐秘聊天,匿名交易,智能合约,分布式OTC交易,超级主节点,幸运抽奖和独特的智能合约设计-链商合约。所有这些功能相互呼应、循环、平衡,构成了VDS初期强大的内部结构,其内在的金融平衡,社区推广,商业对接,价值沉淀和网络扩张都将颠覆中心化商业模式背后的观念。

VDS将成为一个供全世界使用的隐私互联网络。它支持开发独立的Web 浏览器,每个VID地址都可以作为匿名IP网址使用。在这个开放的隐私网络中,可以移植中心化互联网的所有应用程序,通过社区的共同努力,打造一种全新的,去中心化的互联网自由生态。

VDS的核心理念是依靠所有人的智慧来实现整个人类社会的自由,致力于为我们每个人甚至每一代人提供更加公平,平等和隐私的财富自主权。它将实现全人类的终极财富自由。

同时VDS将实现完全的言论自由。通过独有的匿名技术,任何人都可以在去中心化的网络中通过隐秘聊天表达意见和传达观念,安全自由地进行沟通。或者将广告内容通过竞价广告广播系统插入每个VDS用户的钱包应用中,实现全网的广播。信息及其传播将突破中心化监管的限制,人们将真正意义上认识这个世界。

VDS带来的创新自由是打破区域限制的商业创新模式。有人的地方有网络,有网络的地方就有VDS。任何人都可以通过VDS独有的智能合约技术将自己的商业帝国发展到全球的每个角落。

在任何交易市场中,流入市场的现金流与参与的用户数量直接相关。因 此,我们所有用户参与到去中心化裂变推广中,在个人获得收益的同时,也为系统了提供大量的用户。这是一种良性的现金流良性解决方案。随着Vollar价格上涨,用户将更积极地参与到裂变拓展,使VDS生态网络中的用户数量翻倍增长。

除此之外,大量Bitcoin将被用作每个区块周裂变推广的奖励,来激励更多用户参与到VDS生态网络的建设中。Bitcoin奖励的数量全部取决于参与共振交易的 Bitcoin数量。Vollar带来的收益越多,参与共振交易的Bitcoin就越多,新用户增长的激励就越大。

在VDS生态中,超级主节点的创建将为参与者带来可观的Vollar收益。随着Vollar收益的增加,越来越多的参与者将逐渐了解其价值,从而为获得更多的 Vollar,而创建更多的超级主节点。

超级主节点的增加为VDS生态提供了更稳定的网络服务。此外,搭建超级 主节点需要10,000个Vollar的押金。因此越多的超级主节点意味着越多的Vollar将被当做押金使用,这有助于大大降低市场上可交易的Vollar数量,刺激其价格增长。

此外,VDS生态系统内用户的指数增长也加速了Vollar的购买需求,从而使Vollar的市场需求倍增,进一步降低了当前时期的可交易总量,形成价值的良性循环和持续、稳定的上涨。

随着Vollar价值的不断上涨,大量用户将继续参与到VDS生态网络的扩张中。为了增加用户粘性,我们在生态中添加了更多具有意义的功能:例如,世界 上最安全的社交聊天应用程序,精准对接目标用户的全网广告广播系统,连接商业价值的链商功能,以及安全对接全球多大50种法定货币的OTC功能。通过这些功能和应用,在人们体验VDS生态时,Vollar的使用价值将会凸显,这为Vollar成为未来通用货币奠定了基础。

在Vollar的收益驱动和大量参与者的共同努力下,VDS的生态网络将迅速发展成熟,成熟的VDS生态必将伴随所有参与者走向最终的自由。

Vollar是VDS生态系统内基本流通单位的名称,也是其唯一的商业与金融传递介质。除了用于帐户记录和付款外,Vollar还可以激活VID,竞标VAD广告位,激励主节点的运行(保证网络的稳定性),以及在系统内运行智能合约。

VID是VDS社区身份的标示,更是VDS中唯一具有通行能力的身份z明。它就像用户用来解锁各种功能和应用的钥匙,如信任钢印网络和隐秘聊天。在很大程度上,只有拥有VID才能真正体验强大的自由网络一VDS。

VAD是一种非中心化的广告竞价广播系统。选择最高出价的广告进行节点 间的传播,然后将信息插入每个VDS钱包,创建精准有效的商业连接,并完善 Vollar作为流通货币的能力。我们将此称为全网广播。

依靠信任钢印网络裂变推广产生的庞大用户基数,VAD将成为全球广告业的超级电台。链商合约是VDS中独有的智能合约系统。全球的供应商可以在VDS链上注册收款地址,设置智能合约佣金比率,并激活链商合约。通过这些智能合约,商家在他们的信任钢印系统下注册自己的收款地址,设定合约佣金的分配比率,一 步创建自己的区块链共识销售网络。

信任钢印网络中的所有VID用户在激活链商合约的商家进行消费,则该VID 裂变树中向上的12个直接连接的VID,都可以获得商家的链商合约佣金。

VID开通码:VcbJpm7eMJBLSum5FvZBrDVM3riXs13gJss

在VDS链商合约的实际应用中,可以进行各种销售推广,这是区块链技术 与日常生活的尚度融合。消费者完全可以使用Vollar并通过链商合约完成消费支 出。无论是快餐还是医疗账单,我们都可以创建独有的链商合约完成一系列相关支付。同样,供应商也可以通过VDS的竞价广告功能获取大量消费者,为客户提供更便捷的服务和体验,并通过简单的佣金设置,通过信任钢印网络进行快速推广。在结合其他VDS功能后,任何人都可以简单地整合自己现有的资源,完成消费或销售。

虚拟产品同样可行。消费者可以通过链商合约直接在VDS内购买和销售优 惠券和游戏道具。无论消费金额大小,每笔支出都将精准的按照合约规定执行;供求关系和推广方式格外清晰。我们将以更高效,灵活和便捷的方式完成各种门类的资金流通。

大型购物平台可以进一步深入开发和应用VDS链商合约,将它们并入到购物平台的支付系统。新用户完成注册时,将生成相应的链商合约收款地址。与传统购物平台相比,这是一个极具颠覆性的区块链行业实践,因为它将每个新加入 的用户,都转化为了营销推广力量。

以VDS智能合约为基础,链商合约通过植入每个VID以及其信任钢印体系下的人际关系,构成了价值共享的去中心化商业模式。任何商家都可以在非中心化的情况下,通过对智能合约进行佣金分配设置,依托区块链内建立起来的信任关系调动每个VID的推广积极性。VID们分享从该商品或服务中获得的销售佣金,帮助商家获得源源不断的客户流,促进商品或服务的销售。优质产品将获得更大推广力度,提高产品销量,这也将颠覆现有的中心化商业思维方式。每个VID都将通过VDS建立自己的商业生态圈,用去中心化思维重绘全球商业帝国的蓝图。

1 语音间断传输的目的 不管是第二代蜂窝系统还是第三代蜂窝系统,也不管采用的是TDMA技术还是CDMA技术,各无线小区中的用户在与基站之间进行通信时,都会或大或小地对同一小区甚至不同小区中的用户造成干扰。如在GSM系统中,用户和基站之间进行通信是在特定的时隙中进行的,而用户在该时隙中发送突发脉冲序列时,对工作于相邻时隙的其他用户必然有所干扰;在CDMA系统中,对某一用户而言,系统中其他用户的信号都是干扰。又因为在通话建立期间,一个用户发送语音的概率小于50%。只要在通话过程的语音停顿期间尽量少地传送信息,就可以降低对系统中其他用户的干扰。所以采用语音间断传输(DTX, discontinuous transmissionl的目的主要是降低系统中总的干扰电平以提高系统效率。在CDMA系统中,当对误码率的要求一定时,也就是对输入信干比要求一定时,减小总的干扰电平就是增加系统容量。采用语音间断传输的另一个目的是节省发射机功耗以增加移 动台一次充电后使用的时间。 2 GSM系统中语音间断传输的原理 为实现语音的间断传输,首先需要知道什么时候需要进行语音的传输,什么时候不存在语音而不需要进行语音的传输。这就需要有一个能够识别在一个20ms帧中语音是否存在的语音激活检测(VAD,voice activity detectionl)器。 判决语音是否存在的主要依据是发端经滤波恢复的信号能量与阈值之间的比较。阈值必须根据背景噪声特性而不停地调整,保证阂值高出噪声电平。语音激活检测得到的比较结果VAD标志,用于间断传输的控制和 *** 作。 当检测到不存在语音时,发端不能简单地关闭发信机,否则收听者会受到严重的噪声干扰。如果接收机采取静噪措施,也会给收听者产生通信联系中断的错觉。因此,发送端在检测出没有语音的20ms帧时,必须将发端背景噪声的参数传给收端。有了这些“舒适噪声”,接收端就不会有异样的感觉。 背景噪声的特性由特殊帧(SID,Silence Descriptor)传送。在检测到一个20ms帧语音不存在时,就送出一个SID帧,在随后的无语音存在期间,每秒至少两次规则地送出SID帧,直到检测出语音帧出现为止。 3 GSM系统中语音间断传输的实现 1.发送端语音间断传输功能的实施 图21_41为发端语音间断传输处理器原理框图。图21.41表明,发送端语音间断传输(TX—DTX)处理器包括语音编码、语音激活检测和舒适噪声发送功能等几部分。 图21.41 发端语音间断传输TX—DTX处理器 语音激活检测的输出为二进制标志VAD,VAD。1表示检测到的是语音帧,处理器输出标志SP也为1;VAD=0表示检测到的是噪声。 在检测到无语音帧(VAD=0)后,作为语音结束时的释放延迟,还要将N(N=4)个输出帧标为SP=1送到无线子系统,无线子系统继续将Ⅳ帧作为语音帧发送。直到检测到无语音帧后的第Ⅳ+1帧,才标志SP=0,作为特殊的帧SID送无线子系统。SID是传输噪声参数的帧。为了防止将短促的背景噪声尖峰误认为是语音,在检测到语音帧(SP=1)时,如果从上一个送到无线子系统的SID帧开始进行计数,经历的帧数小于24帧,就认为该语音帧为短促的背景噪声尖峰,就重复将上一个SID帧送给无线子系统,直到一个新的SID帧出现。即更新一个SID帧必须大于24帧的时间。

请问问的是怎么给Cad建立一套全局标注吗。通过标注样式管理器命令进行标注。
借助于界面左侧工具栏中的工具进行绘图,所需要的图形进行绘制完成之后,对我们所进行绘制的图形进行标注。在界面上找到标注—线性命令。或者是在命令中直接输入DLI指令。对标注调整全局比例,则是需要找到界面上方中的标注窗口,之后用鼠标进行点击下拉框内的标注样式管理器命令。或者你也可以在界面命令中输入d指令。在界面所d出的窗口内,我们找到修改调整全局比例命令并用鼠标点击。自己需要进行设置的勾选完成之后,我们之后就可以点击确定。
CAD诞生于60年代,是美国麻省理工大学提出了交互式图形学的研究计划,由于当时硬件设施的昂贵,只有美国通用汽车公司和美国波音航空公司使用自行开发的交互式绘图系统。70年代,小型计算机费用下降,美国工业界才开始广泛使用交互式绘图系统。80年代,由于PC机的应用,CAD得以迅速发展,出现了专门从事CAD系统开发的公司。

用变色龙万能播放器看下,变色龙目前支持格式最全,不需要额外的解码器,而且具有专业强大的音视频和字幕处理功能,并可以随意播放下载不完全或者有损坏的文件。搜索“变色龙万能播放器”从各下载中心下载或者从官网 >

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13471469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-13
下一篇 2023-08-13

发表评论

登录后才能评论

评论列表(0条)

保存