发生下列警报: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Warning [2] Undefined array key "lockoutexpiry" - Line: 94 - File: global.php PHP 8.2.25 (Linux)
|
人工智能语音的开源实现 - 可打印的版本 +- 助听器论坛 (http://jhearing.com/mybb) +-- 版块: 技术杂谈 (http://jhearing.com/mybb/forumdisplay.php?fid=7) +--- 版块: 软件技术 (http://jhearing.com/mybb/forumdisplay.php?fid=8) +--- 主题: 人工智能语音的开源实现 (/showthread.php?tid=4) |
人工智能语音的开源实现 - admin - 12-23-2018 1.google的wavenet 语音模型 2016年,Google 的 DeepMind 研究实验室昨天公布了其在计算机语音合成领域的最新成果——WaveNet。该语音合成系统能够模仿人类的声音,生成的原始音频质量优于目前的文本转语音系统(text to speech,简称 TTS) WaveNet 直接用音频信号的原始波形建模,而且是一次处理一个样本。通过这种方式生成的语音不但听起来更加自然,而且使用原始波形还能为任何声音建模,包括模仿任何人的声音,还能生成音乐。在测试中,WaveNet 通过分析古典音乐,生成了一段钢琴曲。 2. wavenet 模型在tensorflow 上的开源实现 GitHub用户ibab发布了一个WaveNet的实现,机器之心在这里对其介绍文档README.md进行了介绍编译。项目地址:https://github.com/ibab/tensorflow-wavenet这是用于音频生成的WaveNet生成式神经网络架 这是用于音频生成的 WaveNet 生成式神经网络架构的一种 TensorFlow 实现。 WaveNet 神经网络架构可以直接生成原始音频波形,能够在文本转语音和常规的音频生成上得到出色的结果。(具体介绍请参阅前言中链接的介绍文章)。 该网络可在给定所有之前的样本和可能的额外参数的条件下,通过建模条件概率(conditional probability)来生成音频波形的下一个样本。 在一个音频处理步骤之后,其输入波形会被量化到一个固定的整数范围内。然后这个整数振幅(integer amplitudes)会被独热(one-hot)编码以生成一个形状的张量(num_samples, num_channels)。 一个卷积层只能获得当前和之前的输入,然后减少信道维度(channel dimension)。 该网络的内核被构建为一个因果扩张层(causal dilated layers)的堆叠,其中每一层都是一个扩张的卷积(dilated convolution,即带有 hole 的卷积),它只能获取当前和过去的音频样本。 所有层的输出通过一系列密集的后处理层(postprocessing layers)被结合起来并扩展回原来的信道数量,后面再跟上一个 softmax 函数将这些输出转换成一个分类分布(categorical distribution)。 其损失函数是每个时间步骤的输出和其下一个时间步骤的输入之间的交叉熵(cross-entropy)。 在这个 repository 中,该网络的实现可以在 wavenet.py 文件中找到。 要求 在运行本训练脚本之前需要先安装 TensorFlow。支持 TensorFlow 0.10 和当前的 master 版本。 此外,为了读取和写入音频还必须安装 librosa。(地址: https://github.com/librosa/librosa ) 安装所需的 Python 包(TensorFlow 之外的),运行 pip install -r requirements.txt 训练网络 你可以使用任何包含 .wav 文件的语料库。我们目前主要使用的 VCTK 语料库。 VCTK 语料库地址: http://homepages.inf.ed.ac.uk/jyamagis/page3/page58/page58.html 备用地址: http://www.udialogue.org/download/cstr-vctk-corpus.html 为了训练该网络,执行 python train.py—data_dir=corpus 其中 corpus 是包含 .wav 文件的目录。本脚本会递归式地收集该目录下的所有 .wav 文件。 你可以通过运行 python train.py—help 查看每个训练配置上的文档。 模型的参数的配置可以在 wavenet_params.json 中找到,这些配置需要在训练过程和生成过程中保持一致。 生成音频 由 @jyegerlehner 基于来自 VCTK 语料库的 speaker 280 所生成的样本输出: https://soundcloud.com/user-731806733/speaker-p280-from-vctk-corpus-1 你可以使用之前训练好的模型通过执行 generate.py 脚本来生成音频,运行: python generate.py—samples 16000 model.ckpt-1000 其中 model.ckpt-1000 需要是之前保存的模型。你可以在 logdir 中找到这些。使用—samples 参数设定你需要生成的样本的数量(默认是 1 秒生成 16000 个)。 生成的波形可以使用 TensorBoard 回放,或使用—wav_out_path 参数存储成 .wav 文件: python generate.py—wav_out_path=generated.wav --samples 16000 model.ckpt-1000 除了—wav_out_path,通过 --save_every 也可以每 n 个样本保存一次进行中的 .wav 文件: python generate.py—wav_out_path=generated.wav --save_every 2000 --samples 16000 model.ckpt-1000 快速生成是默认开启的。它使用了来自 Fast Wavenet repository 的实现。你可以通过这个链接了解其工作方式。这可以将生成样本所需的时间减少到几分钟。 关闭快速生成: python generate.py—samples 16000 model.ckpt-1000 --fast_generation=false 运行测试 安装测试要求: pip install -r requirements_test.txt 运行测试套件: ./ci/test.sh 缺少的功能 目前还没有调节说话者 ID 等额外信息的功能。 3.wavenet的更进一步进展 google wavenet >>google tactron >> google tactron2 wavenet 和tactron 是google的不同团队,一个是deepmind ,一个是google brain google wavenet 在google assistant 中正式使用 4.国内类似产品有 : 百度的deep voice应该算是一个平台,是基于google wavenet论文的实现和速度优化. 科大讯飞的语音复刻产品,不过我对科大讯飞的语音复刻效果存疑 |