专栏名称: 机器之心
专业的人工智能媒体和产业服务平台
目录
相关文章推荐
51好读  ›  专栏  ›  机器之心

教程 | 如何使用TensorFlow构建、训练和改进循环神经网络

机器之心  · 公众号  · AI  · 2017-03-25 14:05

正文

请到「今天看啥」查看全文


None ):
return txt_filenames(dirpath, start_idx = start_idx, limit = limit, sort = sort)
def next_batch( self , batch_size = None ):
idx_list = range (_start_idx, end_idx)
txt_files = [_txt_files[i] for i in idx_list]
wav_files = [x.replace( '.txt' , '.wav' ) for x in txt_files]
# Load audio and text into memory
(audio, text) = get_audio_and_transcript(
txt_files,
wav_files,
_numcep,
_numcontext)


特征表示


为了让机器识别音频数据,数据必须先从时域转换为频域。有几种用于创建音频数据机器学习特征的方法,包括任意频率的 binning(如 100Hz),或人耳能够感知的频率的 binning。这种典型的语音数据转换需要计算 13 位或 26 位不同倒谱特征的梅尔倒频谱系数(MFCC)。在转换之后,数据被存储为时间(列)和频率系数(行)的矩阵。



因为自然语言的语音不是独立的,它们与字母也不是一一对应的关系,我们可以通过训练神经网络在声音数据上的重叠窗口(前后 10 毫秒)来捕捉协同发音的效果(一个音节的发音影响了另一个)。以下代码展示了如何获取 MFCC 特征,以及如何创建一个音频数据的窗口。


# Load wav files
fs, audio = wav.read(audio_filename)
# Get mfcc coefficients
orig_inputs = mfcc(audio, samplerate = fs, numcep = numcep)
# For each time slice of the training set, we need to copy the context this makes
train_inputs = np.array([], np.float32)
train_inputs.resize((orig_inputs.shape[ 0






请到「今天看啥」查看全文