Mellotron代码记录

TextMelLoader

用于load【audio/text/speaker ids】【text converts to one hot?】以及【计算audio files中的mel-spectrograms / f0s】
用以获得train/valid set

english_cleaners:

-> convert_to_ascii
-> lowercase
-> expand_numbers  [normalize_numbers {货币符号/小数点/第几缩写}]
-> expand_abbreviations [缩写]
-> collapse_whitespace

TextMelLoaderget_data(self, audiopath_and_text): 通过wav path与text对应的情况进行下一步处理

* text = self.get_text(text) -> 得到一个关于text的int tensortext_to_sequence(text, cleaner_names, 发音dict) 【作用是converts a string of text to a sequence of IDs corresponding to the symbols in the text】- 按概率将单词转换为单词读音【_arpabet_to_sequence(读音组合)】* mel, f0 = self.get_mel_and_f0(audiopath) -> 提取mel spec和基频audio, sampling_rate = load_wav_to_torch(filepath)# from scipy.io.wavfile import readread(filepath) open a wav file 返回sample rate / data [numpy array]audio_norm = audio / self.max_wav_valueaudio_norm = audio_norm.unsqueeze(0)melspec = self.stft.mel_spectrogram(audio_norm)melspec = torch.squeeze(melspec, 0)f0 = self.get_f0(audio.cpu().numpy(), self.sampling_rate, self.filter_length, self.hop_length, self.f0_min, self.f0_max, self.harm_thresh)f0 = torch.from_numpy(f0)[None]f0 = f0[:, :melspec.size(1)]* speaker_id = self.get_speaker_id(speaker)  -> 返回一个说话人的int tensor

发音字典

叮叮叮
像CMU的中文汉语发音字典??

发音字典(lexicon)包含了从单词(words)到音素(phones)之间的映射,作用是用来连接声学模型和语言模型的。

参考

拼音-音素的映射
  首先需要确定的是拼音到音素的转换规则/映射关系。 
  可以有不同的映射关系,不同的映射关系会产生不同的识别效果。

如汉字“一”,
“yi1”可以对应 “ii i1”,[清华语音识别使用的规则]
也可以对应 “y i1”

中文词-拼音的映射
  需要列出尽可能多的中文词及其对应的拼音,有多音字的可列出其不同组合。

g2p工具实现
  通过以上两个步骤即可实现中文词-音素的转换,也就是G2P(Grapheme-to-Phoneme Conversion)。

收集中文词
  发音字典需要覆盖尽可能多的『词-音素』对。
  将分词后的文本语料统计各单词及其词频,去掉低频词与过长的词,得到中文词表。

生成词典
  将中文词表作为输入,通过g2p工具即可得到『词-音素』的映射,也就是发音词典。

继续继续....

Mellotron记录相关推荐

  1. mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引

    在项目中,常常要用到联合唯一   在一些配置表中,一些列的组合成为一条记录.   比如,在游戏中,游戏的分区和用户id会形成一条记录.(比如,一个qq用户可以在艾欧尼亚.德玛西亚创建两个账号) 添加联 ...

  2. 实现 连续15签到记录_MySQL和Redis实现用户签到,你喜欢怎么实现?

    现在的网站和app开发中,签到是一个很常见的功能 如微博签到送积分,签到排行榜 微博签到 如移动app ,签到送流量等活动, 移动app签到 用户签到是提高用户粘性的有效手段,用的好能事半功倍! 下面 ...

  3. 记录一次http请求失败的问题分析

    问题背景 当前我有一个基于Flask编写的Restful服务,由于业务的需求,我需要将该服务打包成docker 镜像进行离线部署,原始服务的端口是在6661端口进行开启,为了区分,在docker中启动 ...

  4. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  5. LeetCode简单题之学生出勤记录 I

    题目 给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':Pre ...

  6. 关于TVM的点滴记录

    关于TVM的点滴记录

  7. MySql数据库Update批量更新与批量更新多条记录的不同值实现方法

    批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...

  8. 记录篇,自己在项目中使用过的。

    图片选择器,6.0已经适配过,类似qq空间上传 点击打开链接_胡小牧记录 下面是效果图: PictureSelector PhotoPicker 类似qq空间发布心情. 点击打开链接 BubbleSe ...

  9. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

最新文章

  1. 程序员的奋斗史(八)——懒人造就方法
  2. Building Java Projects with Gradle
  3. Xamarin.FormsShell基础教程(9)Shell相关类体系
  4. 2019年平面设计趋势
  5. 字典树(Trie tree)
  6. android 非root app 捕捉系统广播_APP的生死之道
  7. combobox异步加载 easyui_如何解决多条数据加载easyui-combobox样式反应慢的问题
  8. C#程序集Assembly学习随笔(增补版,附图)_AX
  9. 三菱modbusRTU通讯实例_PLC编程实例 | 讲解食品和药品成型案例程序!
  10. 浏览器内核的解析和对比
  11. 抖音SEO优化源码,抖音搜索排名系统,技术理论分析搭建。
  12. dcs常用的冗余方式_DCS冗余技术简介
  13. 迅捷pdf转换成word转换器 4.1 官方版
  14. 新增10所高校获批虚拟现实技术本科专业,中国市场将超千亿
  15. 使用cv2在图片上绘制点
  16. 使用JAVA进行ad域身份验证常用属性详解
  17. 树莓派 配置USB麦克风声卡
  18. 搜索引擎排名都选乐云seo_广州搜索引擎排名_乐云SEO
  19. 花瓶(Charles)的域名映射(map remote)功能不管用
  20. sparksql中大小表jion

热门文章

  1. 16.1.3 存储过程和函数的优点
  2. Linux:下载wget
  3. python可以学会编程语言吗_为什么我建议你一定要学Python?
  4. vr全景看房的方案 three.js
  5. 用声音安抚情绪,焦虑·失眠·婴儿哭闹
  6. 计算机基础十一版答案,计算机基础知识题库(十一)
  7. (pygame)自己编的一个接炸弹小游戏。。。
  8. 【网安】工具篇:CE修改器详细使用指南(必看)
  9. 企业财务制度二--会计科目名称和编号(一)1131应收账款(转载)
  10. 小森动画回忆录(二)-哆啦A梦主界面