一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

盲人无障碍电影音频处理方法、装置及存储介质与流程

2023-02-06 11:34:15 来源:中国专利 TAG:


1.本发明涉及音频处理领域,尤其是涉及一种盲人无障碍电影音频处理方法、装置及存储介质。


背景技术:

2.无障碍电影是专门为了方便残障人士观看的经过加工的电影节目,分为盲人与聋人两种版本。对于盲人观众,在保留电影原声和对白的同时,会适时地插入一些对电影画面内容的解说描述。
3.最早这些工作是在电影放映现场人工进行的,志愿者们要拿着话筒一遍遍重复劳动;随着越来越多的社会力量加入,专业制作的无障碍版本电影诞生,这些电影大多以光盘形式传播,不仅减少了志愿者的重复工作,也能让盲人在家就能轻松享受电影的乐趣。
4.随着互联网视频的普及,可以线上欣赏的无障碍电影也越来越多,由此诞生了一种新的形式:即在普通的电影版本上,外挂一路解说音轨来实现盲人无障碍电影,该音轨称为ad音轨(audio description track),简称ad轨,其时长与电影正片保持一致。这种形式免去了电影介质的再生产,降低了制作成本。
5.采用ad轨的无障碍电影播放过程中,会有两路音轨同时播放,即一路电影音轨与一路解说音轨;在前期录制和制作解说音轨时,解说朗读的段落原则上会避开电影中人物的对白段落,选择较为安静的段落穿插解说,但电影中除了人物对白外,为了烘托气氛往往还有背景音乐、环境声响,在时间轴上不可避免地会与解说朗读的内容重叠,引起听觉掩蔽的现象,导致观众无法很好听清解说内容,影响观赏体验。
6.对此,一般播放器会支持ad轨的音量和电影音量独立控制,方便陪同观看的用户进行手动调节;对于原声动态范围较窄的影片,比如纪录片、文艺片,通过适当调大ad轨的音量,或调小原声轨的音量,基本可以让观众听清解说内容,也不影响电影本身的播放效果;但对于绝大部分影片,原声的动态范围是非常宽的,其时间轴波形呈现起伏的“山脉状”;而ad轨是纯语音,动态范围一般较窄,时间轴波形呈现平坦的“腊肠状”;此时再通过手动调节来获得全程舒适的听觉体验就相当困难了:由于两个轨道动态范围不匹配,如果调大ad轨音量,无法保证全程听清解说内容,甚至损害听力,但如果调小电影原声音量,那么原声的宽动态效果又会大打折扣。
7.综上可知,现有技术在播放带有ad音轨的盲人无障碍电影时,仍存在播放体验不佳的问题,所以有必要进行改进。


技术实现要素:

8.本发明的目的就是为了提供一种基于外挂ad音轨的盲人无障碍电影音频处理方法、装置及存储介质,基于现有的盲人无障碍电影播放功能,结合语音活动检测(vad)和音量自适应调节技术,克服了电影原声音轨对于ad音轨的听觉掩蔽效应,使讲解内容能穿插在高动态范围的电影原声中进行播放,弥补了外挂ad音轨这种盲人无障碍电影播放形式的
短板,提升了盲人无障碍电影的观影体验。
9.本发明的目的可以通过以下技术方案来实现:
10.一种基于外挂ad音轨的盲人无障碍电影音频处理方法,包括:
11.获取正片的媒体数据流和外挂ad音轨的媒体数据流;
12.基于正片的媒体数据流解析分离得到正片视频帧队列q
videoes
、正片音频帧队列q
audioes
,并基于外挂ad音轨的媒体数据流解析分离得到ad轨音频帧队列q
audioes
,并完成正片视频帧队列q
videoes
、正片音频帧队列q
audioes
和ad轨音频帧队列q
audioes
的时间轴同步;
13.基于正片音频帧队列q
audioes
提取正片处理段pcm数据帧序列,并基于ad轨音频帧队列q
audioes
提取ad轨处理段pcm数据帧序列;
14.对ad轨处理段pcm数据帧序列进行语音活动检测,得到每一帧的语音活动状态,其中,所述语音活动状态为活动或不活动;
15.对正片处理段pcm数据帧序列的每一帧计算音量,得到正片音量序列,并对该正片音量序列种的元素逐个计算移动平均值,得到正片平均音量序列;
16.对ad轨处理段pcm数据帧序列中语音活动状态为不活动的帧修改为静音值,并对剩余帧逐个计算移动平均值,得到ad轨平均音量序列;
17.基于语音活动检测结果逐帧调节正片平均音量序列和ad轨平均音量序列;
18.基于处理得到的正片平均音量序列和ad轨平均音量序列生成待播放的音频。
19.所述基于语音活动检测结果逐帧调节正片平均音量序列和ad轨平均音量序列,具体包括:
20.初始调节值生成步骤:逐帧确定正片平均音量序列和ad轨平均音量序列中每帧音量的相对调节幅度,得到正片相对调节值序列和ad轨相对调节值序列;
21.音量调节步骤:根据正片相对调节值序列和ad轨相对调节值序列调节正片平均音量序列和ad轨平均音量序列。
22.所述正片相对调节值序列和ad轨相对调节值序列中任一帧的调节值的确定过程如下:
23.当该帧的语音活动状态为不活动时,正片相对调节值和ad轨相对调节值均为0;
24.当该帧的语音活动状态为活动时,则计算该帧的正片平均音量和ad轨平均音量的差值:
25.若该帧的正片平均音量和ad轨平均音量的差值小于-10,则正片相对调节值和ad轨相对调节值均为0;
26.若该帧的正片平均音量和ad轨平均音量的差值小于在-10到0之间,ad轨相对调节值为0,正片相对调节值为d
movie
=l
ad
'(t)-l
movie
'(t)-10,其中,d
movie
为正片相对调节值,l
ad
'(t)为ad轨平均音量,l
movie
'(t)为正片平均音量;
27.若该帧的正片平均音量和ad轨平均音量的差值小于在0到10之间,则正片相对调节值为-10,ad轨相对调节值为d
ad
(t)=l
movie
'(t)-l
ad
'(t)-10;
28.若该帧的正片平均音量和ad轨平均音量的差值大于10,则正片相对调节值为-10,ad轨相对调节值为10。
29.所述基于语音活动检测结果逐帧调节正片平均音量序列和ad轨平均音量序列,还包括:
30.调节值优化步骤:对由初始调节值生成步骤得到的正片相对调节值序列和ad轨相对调节值序列进行平滑处理;
31.所述音量调节步骤中具体为使用调节值优化步骤得到的结果进行音量调节。
32.所述平滑处理处理的过程具体为:
[0033][0034][0035]
其中:d
movie
为平滑处理前的正片相对调节值,d
movie’为平滑处理后的正片相对调节值,d
ad
为平滑处理前的ad轨相对调节值,d
ad’为平滑处理后的ad轨相对调节值,n为步长,i为正片相对调节值的序号。
[0036]
所述步长由淡入淡出窗口长度确定。
[0037]
所述正片处理段pcm数据帧序列和ad轨处理段pcm数据帧序列共提取有多个。
[0038]
所有pcm数据帧序列和ad轨处理段pcm数据帧序列的长度相等。
[0039]
一种基于外挂ad音轨的盲人无障碍电影音频处理装置,包括存储器、处理器,以及存储于所述存储器中的程序,所述处理器执行所述程序时实现如上述的方法。
[0040]
一种存储介质,其上存储有程序,所述程序被执行时实现如上述的方法。
[0041]
与现有技术相比,本发明具有以下有益效果:基于现有的盲人无障碍电影播放功能,结合语音活动检测(vad)和音量自适应调节技术,克服了电影原声音轨对于ad音轨的听觉掩蔽效应,使讲解内容能穿插在高动态范围的电影原声中进行播放,弥补了外挂ad音轨这种盲人无障碍电影播放形式的短板,提升了盲人无障碍电影的观影体验。
附图说明
[0042]
图1是本发明实施例提供的一种基于外挂ad音轨的盲人无障碍电影播放方法的流程示意图;
[0043]
图2是本发明图1中步骤s5的子流程图;
[0044]
图3是本发明实施例提供的语音活动检测(vad)算法的流程图;
[0045]
图4是本发明步骤s504中当vad(t)=1时正片和ad轨两个音轨的调节值与相对音量关系图;
[0046]
图5是本发明实施例提供的一种基于外挂ad音轨的盲人无障碍电影播放系统架构图。
具体实施方式
[0047]
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0048]
如图1所示,本发明供的基于外挂ad音轨的基于外挂ad音轨的盲人无障碍电影音频处理方法,可以用于播放盲人无障碍电影,包括以下步骤:
[0049]
步骤s1,获取节目正片的媒体数据流,同时获取外挂ad音轨的媒体数据流,解析两
种数据流的封装格式与编码类型;本发明所支持的媒体数据流类型包括但不限于hls、dash、mp4、rtsp、rtmp;
[0050]
步骤s2,从节目正片的媒体数据流中分离出视频帧和音频帧,将所述视频帧加入到正片视频帧队列q
videoes
,将所述音频帧加入到正片音频帧队列q
audioes
,直至所述音视频帧队列时长超过预缓冲设定值prebuff_duration,同时从外挂ad音轨的媒体数据流中提取音频帧,并将所述音频帧加入ad轨音频帧队列q
ades
,直至所述ad轨音频帧队列时长超过预缓冲设定值prebuff_duration;
[0051]
步骤s3,启动播放时钟并循环更新,所述时钟启动初始值为队列q
audioes
中首个数据帧的时间戳;
[0052]
步骤s4,在时钟处理循环内,从上述队列q
audioes
中逐个取出音频帧进行解码,解码后的正片二进制pcm数据加入正片pcm数据队列q
pcm1
,同时从上述队列q
ades
中逐个取出音频帧进行解码,解码后的ad音轨二进制pcm数据加入ad音轨pcm数据队列q
pcm2
,直至队列q
pcm1
和队列q
pcm2
内的数据均达到音频处理区间长度w
pcm
后,进入音频处理步骤s5;
[0053]
步骤s5,从上述正片pcm数据队列q
pcm1
和ad音轨pcm数据队列q
pcm2
中分别取出长度为w
pcm
的音频数据进行处理,使ad轨讲解段内的正片相对音量不超过-10db;
[0054]
如图2所示,步骤s5进一步包含以下步骤:
[0055]
步骤s501,对pcm数据并进行分帧,帧长为wl,帧个数n=w
pcm
/w
l
,具体地,对q
pcm1
进行分帧得到正片处理段pcm数据帧序列f
pcm1
(t0,t1,...t
n-1
),对q
pcm2
分帧得到ad轨处理段pcm数据帧序列f
pcm2
(t0,t1,...t
n-1
);
[0056]
步骤s502,通过语音活动检测(vad)算法检测上述f
pcm2
的每一帧的语音活动状态,得到ad音轨语音活动状态序列vad(t0,t1,...t
n-1
);
[0057]
在本实施例中,采用过零率与平均幅度这两个波形特征作为检测语音活动的参考指标,所述过零率指的是pcm数据采样点每秒钟穿过横轴(零电平)的次数,所述平均幅度指的是pcm数据样本幅值的平均值;
[0058]
具体地,本实施例中语音活动检测算法可以按以下步骤进行:
[0059]
(a)过零率及平均幅度计算步骤,逐帧计算过零率zcr(t)以及平均幅度a
avg
(t);
[0060]
(b)语音状态判别步骤,如图3所示,根据过零率阈值zcr
voice
、语音幅度阈值a
voice
、静音幅度阈值a
mute
,逐帧判别每一帧的语音状态vad(ti),具体判断方法如下:
[0061]
如果a
avg
(t)大于a
voice
,并且zcr(t)低于zcr
voice
,当前状态为语音状态,vad(t)=1,即f
pcm2
(t)为语音帧;
[0062]
如果a
avg
(t)低于a
mute
,或者zcr(t)高于zcr
voice
,当前状态为静音状态,vad(t)=0,即f
pcm2
(t)为静音帧;
[0063]
其它情况下,vad(t)维持前一帧的语音状态;
[0064]
步骤s503,对上述f
pcm1
的每一帧进行音量计算,得到当前正片处理段的音量值序列l
movie
(t0,t1,...tn-1),并对该序列的元素逐个计算移动平均值,得到当前正片处理段的音量值平均后的序列l
movie
'(t0,t1,...t
n-1
),同时对上述f
pcm2
(t)中vad(t)=1的语音帧进行音量计算,其余vad(t)=0的帧音量记为静音值-90db,得到当前ad轨处理段的音量值序列l
ad
(t0,t1,...t
n-1
),并对上述音量值序列l
ad
中的非静音元素逐个计算移动平均值,得到当前ad轨处理段的音量值平均后的序列l
ad
'(t0,t1,...t
n-1
);
[0065]
上述每一帧pcm数据音量l(t)的计算公式:
[0066]
l(t)=20*log(sample
max
/32767);
[0067]
其中sample
max
为当前帧数据中最大样本幅值,所述幅值指pcm样本值的绝对值,当样本为多声道采样时,样本幅值为各个声道绝对值的平均值;
[0068]
在本发明中以移动平均值作为实际衡量音频帧音量大小的指标,目的是避免音量的短时陡增和陡降对调节结果产生干扰,同时可以通过增加移动平均算法的窗口大小,控制音量自动调节的灵敏度;
[0069]
具体地,本实施例采用采用指数加权移动平均ewma算法来计算移动平均值,计算公式为:
[0070]
v(t)=β*v(t-1) (1-β)*θ(t)
[0071]
其中θ(t)为t时刻实际音量值,系数β为加权下降的速率,v(t)为t时刻音量的移动平均值;
[0072]
本实施例中分帧长度w
pcm
=80ms,加权下降速率β可取0.9,所计算出的ewma值约等于近10帧的加权移动平均值,即滑动窗口大小约800毫秒,且离当前计算帧越接近,加权系数越大;
[0073]
步骤s504,根据l
movie
'(t0,t1,...t
n-1
)与l
ad
'(t0,t1,...t
n-1
)的音量值,以及vad(t0,t1,...t
n-1
)的状态,对pcm数据帧序列f
pcm1
(t0,t1,...t
n-1
)和f
pcm2
(t0,t1,...t
n-1
)中的音频帧进行音量修正,目标是让ad轨正在讲解时,正片的相对音量不超过-10db,刚好接近不同音源间产生听觉掩蔽效应的阈值,从而达到ad轨讲解内容能被清晰理解,同时又不过度削弱正片音量的目的;
[0074]
具体地,音量修正包括以下步骤:
[0075]
(a)逐帧确定pcm数据帧序列f
pcm1
和f
pcm2
中每帧音量的相对调节幅度,得到相对调节值序列d
movie
(t0,t1,...t
n-1
)与d
ad
(t0,t1,...t
n-1
),相对调节值确定规则如下:
[0076]
当vad(t)=0时,d
movie
(t)=0,d
ad
(t)=0;
[0077]
当vad(t)=1时,根据l
movie
'(t)-l
ad
'(t)的值d:
[0078]
若d《=-10,则d
movie
(t)=0,d
ad
(t)=0;
[0079]
若-10《d《=0,则d
movie
=l
ad
'(t)-l
movie
'(t)-10,d
ad
(t)=0;
[0080]
若0《d《=10,则d
movie
=-10,d
ad
(t)=l
movie
'(t)-l
ad
'(t)-10;
[0081]
若d》10,则d
movie
=-10,d
ad
(t)=10;
[0082][0083][0084]
表1给出了本实施例中5对音频帧音量数据在调整前和调整后的变化情况;
[0085]
图4直观地展示了步骤s504中vad(t)=1时正片音轨与ad轨的调节值与上述相对音量ddb的关系,由图可见,本发明中对正片音轨最大音量相对调节值限制在-10db以上,这是为了防止正片音量下降过多而破坏电影气氛和背景音乐的连贯性;另一方面,本发明中对及ad音轨的相对调节值限制在10db以下,是为了避免音量过响对给听力造成损害,同时避免ad音轨在增益计算时发生溢出;通过对实际播放场景的收集和分析,本发明所限定的
±
10db的调节限度可以满足在绝大多数高动态范围电影外挂无障碍ad音轨的需求;
[0086]
(b)对调节值序列进行窗口平滑处理,目的是为了避免音量陡增和陡降,实现淡入淡出的调节效果,设定淡入淡出窗口长度wf,则窗口内包含的帧数n=wf/w
l
,最终的音调节值计算方法为:
[0087][0088][0089]
(c)根据每帧的最终调节值,对pcm数据帧序列f
pcm1
(t0,t1,...t
n-1
)和f
pcm2
(t0,t1,...t
n-1
)中的音频数据帧进行音量修正,具体地,每个pcm采样点的计算方法如下:
[0090]
sample'=sample*10
(d
'
/20)
[0091]
其中sample'为调节后的样本值,sample为原样本值,d’为当前帧的最终音量调节值;
[0092]
步骤s6,将正片处理段pcm数据帧序列fpcm1、ad轨处理段pcm数据帧序列f
pcm2
中的二进制数据写入两个音轨各自的设备缓冲区,交由声卡播放,并更新上述正片pcm数据队列q
pcm1
和ad音轨pcm数据队列q
pcm2
的起始时间戳t0=t0 w
pcm
,等待进入下个时钟处理循环;
[0093]
步骤s7,在时钟处理循环内,从q
videoes
中逐个取出视频帧进行解码,解码后的待渲染视频帧加入视频渲染队列q
frames
,直至队列q
frames
长度超过视频帧同步冗余长度t
sync

[0094]
步骤s8,根据视频渲染队列q
frames
中第一帧的时间戳t、当前播放时钟t、系统硬件音频延迟t
latency
,判断是否要对渲染队列q
frames
的当前帧数据进行渲染:
[0095]
当t》t t
latency
,取出并渲染当前帧;
[0096]
当t《=t t
latency
,等待进入下个时钟处理循环;
[0097]
图5是本发明实施例提供的一种基于外挂ad音轨的盲人无障碍电影播放系统架构图,如图5所示,包括:
[0098]
媒体解析装置10,用于输入节目正片与外挂ad音轨的媒体数据流路径,解析并输出两种数据流的封装格式与编码类型;
[0099]
数据缓冲装置20,连接于所述媒体解析装置,用于从节目正片的媒体数据流中分离出视频帧和音频帧,从外挂ad音轨的媒体数据流中提取音频帧,并控制正片视频帧队列q
videoes
、正片音频帧队列q
audioes
、ad轨音频帧队列q
audioes
这三个帧队列的长度;
[0100]
播放时钟控制装置30,连接于所述数据缓冲装置,用于启动和管理播放时钟,设定播放时钟启动的初始值为队列q
audioes
中首个数据帧的时间戳,并定期发出时钟更新消息;
[0101]
音频解码装置40,连接于所述播放时钟控制装置与数据缓冲装置,用于在接收到时钟更新消息后对ad轨音频帧队列q
audioes
、ad轨音频帧队列q
audioes
中的数据进行解码,直至解码后的pcm数据长度大于音频处理段的长度w
pcm

[0102]
音频处理装置50,连接于音频解码装置,用于对解码后的正片音频数据及ad音轨音频数据进行分帧、语音活动检测、音量检测及修正等处理,使得ad轨中有讲解内容段时,正片音量相对ad轨尽量不超过-10db;
[0103]
进一步地,上述音频处理装置包含以下子装置:
[0104]
音频分帧装置501,用于对pcm数据并进行分帧,以得到正片处理段pcm数据帧序列f
pcm1
(t0,t1,...t
n-1
)及ad轨处理段pcm数据帧序列f
pcm2
(t0,t1,...t
n-1
);
[0105]
ad音轨语音活动检测(vad)装置502,连接于上述音频分帧装置,用于检测上述fpcm2的每一帧的语音活动状态,得到ad音轨语音活动状态序列vad(t0,t1,...t
n-1
);
[0106]
音量检测装置503,连接于上述音频分帧装置,用于对f
pcm1
的每一帧进行音量检测,并逐个计算移动平均值,得到当前正片处理段的音量值平均值序列l
movie
'(t0,t1,...tn-1),同时对上述f
pcm2
(t)中vad(t)=1的语音帧进行音量检测,其余vad(t)=0的帧音量记为静音值-90db,得到当前ad轨处理段的音量值序列l
ad
(t0,t1,...t
n-1
),并对上述音量值序列lad中的非静音元素逐个计算移动平均值,得到当前ad轨处理段的音量值平均后的序列l
ad
'(t0,t1,...t
n-1
);
[0107]
上述正片音量检测装置中,每一帧pcm数据音量l(t)的计算公式:
[0108]
l(t)=20*log(sample
max
/32767);
[0109]
其中sample
max
为当前帧数据中最大样本幅值,所述幅值指pcm样本值的绝对值,当样本为多声道采样时,样本幅值为各个声道绝对值的平均值;
[0110]
音量修正装置504,连接于上述ad音轨语音音量检测装置,用于根据l
movie
'(t0,t1,...tn-1)与l
ad
'(t0,t1,...tn-1)的音量值,以及vad(t0,t1,...t
n-1
)的状态,对pcm数据帧序列f
pcm1
(t0,t1,...t
n-1
)和f
pcm2
(t0,t1,...t
n-1
)中的音频帧进行音量修正,目标是让ad轨正在讲解时,正片的相对音量不超过-10db,刚好接近不同音源间产生听觉掩蔽效应的阈值,从而达到ad轨讲解内容能被清晰理解,同时又不过度削弱正片音量的目的;
[0111]
具体地,音量修正装置还包括以下子装置:
[0112]
(a)相对调节值计算装置,用于逐帧确定pcm数据帧序列f
pcm1
和f
pcm2
中每帧音量的相对调节幅度,得到相对调节值序列d
movie
(t0,t1,...t
n-1
)与d
ad
(t0,t1,...t
n-1
),相对调节值计算规则如下:
[0113]
当vad(t)=0时,d
movie
(t)=0,d
ad
(t)=0;
[0114]
当vad(t)=1时,根据l
movie
'(t)-l
ad
'(t)的值d:
[0115]
若d《=-10,则d
movie
(t)=0,d
ad
(t)=0;
[0116]
若-10《d《=0,则d
movie
=l
ad
'(t)-l
movie
'(t)-10,d
ad
(t)=0;
[0117]
若0《d《=10,则d
movie
=-10,d
ad
(t)=l
movie
'(t)-l
ad
'(t)-10;
[0118]
若d》10,则d
movie
=-10,d
ad
(t)=10;
[0119]
(b)调节值平滑处理装置,连接于相对调节值计算装置,用于对调节值序列进行平滑处理,避免音量陡增和陡降,实现淡入淡出的调节效果,设定淡入淡出窗口长度wf,则窗口内包含的帧数n=wf/w
l
,最终的音调节值计算规则为:
[0120][0121][0122]
(c)最终修正值计算装置,连接于调节值平滑处理装置,用于对pcm数据帧序列f
pcm1
(t0,t1,...t
n-1
)和f
pcm2
(t0,t1,...t
n-1
)中的音频数据帧进行音量修正,具体地,每个pcm采样点的计算规则如下:
[0123]
sample'=sample*10
(d
'
/20)
[0124]
其中sample'为调节后的样本值,sample为原样本值,d’为当前帧的最终音量调节值;
[0125]
音频播放装置60,连接于音频处理装置,用于将处理后的正片处理段pcm数据帧序列f
pcm1
、ad轨处理段pcm数据帧序列f
pcm2
中的二进制数据写入两个音轨各自的设备缓冲区,交由声卡播放;
[0126]
视频解码装置70,连接于所述数据缓冲装置,用于从q
videoes
中逐个取出视频帧进行解码,并将解码后的待渲染视频帧加入视频渲染队列q
frames

[0127]
视频渲染装置80,连接于视频解码装置与播放时钟控制装置,用于实现音视频同步播放,根据视频渲染队列q
frames
中第一帧的时间戳t、当前播放时钟t、系统硬件音频延迟t
latency
,判断是否要对渲染队列q
frames
的当前帧数据进行渲染:
[0128]
当t》t t
latency
,取出并渲染当前帧;
[0129]
当t《=t t
latency
,等待播放时钟控制装置发出下个时钟更新消息。
[0130]
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献