- 3D工具
- MikuMikuDance
- 绘画工具
- Flash
- 音乐工具
- Audacity
- 所属类型
- 調教
  

0
9
0
UID: 111156
权限: 40
属性: 宇宙人 发帖: 201
(1精)
积分: 540
章鱼: 3
大葱: 14
茄子: 2688
注册:2012/8/18
存在感:476
|
(这篇文章完全基于我的个人观点,不代表Rocaloid开发组的立场。)
UTAU是一个在歌声合成领域很有建设性的软件,它的开放架构促进了一个活跃的用户社区的形成,并鼓励用户进行相关的探索和尝试,这无疑是值得肯定的。但是,请允许我指出UTAU社区一直存在的一些问题,这也是同类软件(包括Rocaloid)的用户群体的问题。
我观察到UTAU社区提出过许多歌声合成相关的概念(例如“连续音”、“syo/B-HM/芳梅式”、“多音高”),然而这些概念早在十几年前就有人提出过。
这个请求看上去是很滑稽的。作为歌声合成软件的开发者,我的义务是提供给用户最好最易用的软件(“客户是上帝”),而不是去给用户挑错。但是上述问题的确造成了用户的大量重复劳动。鉴于此类软件的发展现状,我们很难将理论基础和操作方式分离(这也是我们的目标)。因此为了UTAU社区在未来的良好发展,我有必要明确指出这个问题,并提供可能的解决方案。
好在UTAU社区的用户构成比较清晰。除了负责调教的最终用户外,还有音库制作者,录音表设计者,以及合成引擎(resampler, wavtool)和工具的开发者,有时一人身兼多职。如果能让最终用户和音库制作者更方便地使用软件、创作出更高质量的作品,我认为适当地让后三种用户学习一些相关知识是非常有价值的决策。
进入正题
可以理解许多用户并未听说过在语音信号处理领域的一些学术研究,因为我曾经也是如此。直到开发Rocaloid将近两年后我才知道在这个领域早就过有大量的研究、专门的期刊和会议、各种引用量上千的出版物、丰富的资源和工具……如果我们不站在巨人的肩膀上,在前人的研究成果的基础上前进,那么重复劳动是必然的——我在2013年6月前写过的两万余行代码因此完全作废了。
事实上我不完全确定UTAU录音表的设计者是否参阅过某些文献(从引用的缺失推断出的结论)。接下来我的言语可能会冒犯某些设计者,但不知者无罪,我没有贬义,只是期望我们能多了解一些知识。
前面已经提到了UTAU普通话音库存在多种录音方案。然而在2005年,有一篇论文总结了三种常见的普通话语料库方案:
According to the aforementioned, we summarize the design rules as follows:
1. Cover all syllables (in Mandarin, there are about 411 base-tone syllables.)
2. Cover all coarticulation between any two syllables.
3. Cover as many various pitch levels and durations for each syllable as possible.
With the above rules, we have three corpora: single-syllable-based corpus (SSC), coarticulation-based corpus (CC), and songs-based corpus (SC).
(Lin, Cheng-Yuan, Tzu-Ying Lin, and J-S. Roger Jang. "A corpus-based singing voice synthesis system for Mandarin Chinese." Proceedings of the 13th annual ACM international conference on Multimedia. ACM, 2005.)
我自己在此作一个中文翻译:
根据上述提到的内容,我们将设计规则总结如下:
1. 覆盖全部的音节(在普通话中,共有大约411个平声的音节)
2. 覆盖全部的双音节间的协同发音
3. 为每个音节覆盖尽可能多的音高和时长组合
按照上述规则,我们设计出三个语料库:基于单音节的语料库(SSC)、基于协同发音的语料库(CC)、和基于歌曲的语料库(SC)。
事实上SSC相当于UTAU社区给出的“整音”+“多音高”+“多时长”的概念;CC相当于“连续音”的概念;SC则(据我所知)没有明确对应——这是直接从真实歌唱中的片段构建出音库。
更进一步,这篇文章对三种情况分别作了讨论。以CC为例,作者所在的研究组对16232首普通话歌曲中的1337532个音节作了统计,挑选出了715对最频繁出现的双音节进行录音。
这些研究成果很大程度上可应用于UTAU及类似软件音库的录制。而这只是过去几十年间众多相关论文中的一篇。
中研院语言学研究所的郑秋豫博士有许多成果可供参考。她在1998年IEEE ASSP会议上发表的Corpus-based Mandarin speech synthesis with contextual syllabic units based on phonetic properties,介绍了一种FINAL-INITIAL/FINAL-FINAL形式的语料库设计,其实涵盖了UTAU社区的CVVC式录音方案(事实上这种设计最初是她在1995年提出的,但那篇论文已经找不到)。
此外还有Eurospeech 1997上发表的Sentence Design for Speech Synthesis and Speech Recognition Database by Phonetic Rules,亦对普通话的双音子、跨音节三音子、尾音组合概率作了研究,甚至给出的录音数量和CVVC的录音数量呈基本一致。这是在距今17年前,距UTAU诞生11年前。
对于英语和其它语言的相关研究更是数不胜数。我们必须承认这些研究比社区内的业余研究严谨并系统很多,因此值得我们学习。
除了在语料库设计方面,音库制作者和设计者(甚至最终用户)还应当具备一些声学分析(Acoustic Analysis)常识。这在音库的标记(“设置oto”)和调教中尤为重要。应当学习辨识频谱、声谱图,了解音高、响度、能量、共振峰等概念。
UTAU社区中已经存在一些辅助音库制作的工具,例如oremo、setParam。但是在很大程度上这些工具只实现到半自动的音段标记,即需要大量人力操作才能完成音库制作。以Overlap、Preutterance等参数的标记为例,它们自动标记的准确率不够高,这导致音库的制作十分耗时。事实上语料库的自动音段标注是一个持续了大约四十年的课题,在80年代就已经有基于HMM的自动分段算法,能直接从连续的语音中识别并标注音素,准确率达到90%。希望相关工具的编写者能从中学习。
我们甚至不需要专门为特定软件的音库制作专门编写工具:我们可以直接修改现有的工具。例如Praat是一个很好的语音学软件,具有强大的语音分析功能,它内建了脚本功能,可以用Praat脚本语言对其编程,实现复杂的语音分析、编辑。而且它在GNU GPL下开放源代码,这代表在遵循GPL的前提下,我们能修改Praat的代码,赋予它更强大的功能。
好消息是,其中一些技术已经在UTAU社区得到应用。uppslink是一个Praat到UTAU resampler的中间层,它使用Praat自带的PSOLA算法代替原来的resampler实现音高和时长修改;我还看到过使用STRAIGHT算法的resampler实现。但是这些还远远不够,这只是一个开始。
我如何获得这些论文/资源?
Google学术是一个很好的论文搜索引擎,在Google被封的现状下,可以使用谷粉搜搜镜像站(http://www.gfsoso.com/scholar)。部分论文是公开且免费的,能直接从Google学术上给出的链接下载得到;IEEE/ACM/JSTOR/Elsevier/Springer上的都要付费,对于个人研究者价格较高,如果付不起,你可以委托985/211高校的学生帮你获取,或者向论文的作者发邮件请求(请礼貌用语)。
一些有用的链接:
如何阅读论文? http://www.sciencebuddies.org/science-fair-projects/top_science-fair_how_to_read_a_scientific_paper.shtml
Praat: doing Phonetics by Computer http://www.fon.hum.uva.nl/praat/
Speech at CMU http://www.speech.cs.cmu.edu/
CCRMA at Stanford https://ccrma.stanford.edu/
Music Technology Group at UPF http://mtg.upf.edu/
Wikipedia-Phonetics http://en.wikipedia.org/wiki/phonetics
...华侃如("Sleepwalking")
|
|