Qy TTV
来自之前的 U 盘。
TTV
开发手册及日志
概述
Qy的子计划之一,是最先开始的子计划。
目的是生成音频和动作
存在多步输出:口型、波形
特征
- 通过对人类的发声过程进行重现来生成
- 具备单独的情感表达
- 多参数输出
- 可对中间参数进行修改
- 跨语言,跨方言合成
想法来源
当前产业
对于当前而言,语音合成产业的主要目的已经从“能够听懂内容”变成了“尽量逼近真人”,所以无论从工业界与还是学术界,对生成的音频的质量的要求都是显著提高的。
在当前的环境而言,工业界更加倾向于已经成熟的拼接式;在学术界,除了拼接式,对于参数式模型的研究也发展的很顺利,在2016年,Google的子公司Deep Mind提出了一个新的模型——WaveNet,开启了深度学习+语音合成的道路。
诞生
我的心路历程其实是兴趣转移的过程:
MMD -> 重音teto -> U家(不算入坑,只是自己搞着玩一玩) -> speech synthesis(拼接式 -> 参数式(wavenet)[<=只是有所了解,并未深入研究] -> 想出新思路)
当时想出了以下几点“优越性”:
- 从发声的实际过程入手不仅是可行的,而且效果相对于传统方法是比较优异的
- 以前没几个人走过(19年在Nature上发表的那个研究,主要是拿来帮助残疾人而不是被拿来自娱自乐的,所以那个方案和我的方案相比,在目的及细节上完全不同)
- 跨语言合成与情感的注入
准备
术语
[涉及的过于广阔,不便继续展开]
可能涉及的背景知识
- 数学
- 计算机科学
- 编程
- 数据库相关
- 机器学习及数据挖掘
- 计算机图形学
- 高等数学(不了解)
- 信号与系统
- 计算机科学
- 物理(不了解)
- 声学
- 光学
- 解剖学
- 呼吸系统
- 头面部
- 颈部
- 耳鼻喉
- 影像医学
- 心理学(不了解)
- 认知神经科学
- 情感表达
- 乐理
(不了解) - 发声语音学(不了解)
- IPA
- 韵律
- 工程学/技术
- 数据采集(DAQ)
正文
研究阶段
大致分成七个阶段:
- 整体架构与接口的设计
- 前端模型的实现(将文字等符号予以转化)
- 呼吸模型的实现
- 喉部数据的获取及发声模型与呼吸模型的整合
- 调音机制数据采集(及唇,齿,舌,软腭部位等)及模型的建立与前两个模型的整合
- 感情模型的导入(新的数据库)
- 和其他部分的整合
不同模型的安排并不是按照“气流机制 -> 发声 -> 调音” 的机制来进行的,而是按照部位(胸腹腔、咽喉、口鼻、唇)安排的
模型的框架设计
输入
主输入
特征:
以段为单位,而不是句子(因其机制)
并不严格要求时间上的对齐
“时间上的对齐”的意思是:在第几秒说哪个字,发哪个音
情感的定量输入(PAD model),但情感标注并不是基于时间而是基于事件
存疑:对于情感模块的界限的定义——每一部分应该承担的作用
例子(仅仅是展示,并不是实际的输入):
voice:
uuid: d8727c04-7bb4-43af-a842-8d662ac36a76
speaker:
name: "Cookie"
meta:
param: ["default"]
gender: "female"
language: "cms-Hans"
label:
text: "各位下午好。"
ext:
breath: "quick"
emotion:
global: [0.2, 0.02, 0.1]
local: null
附加输入(实时输入)
每时每刻的输入
单位:帧(60fps/120fps)
例如:外界动作,表情等
该模型存在的合理性:终极目标
输出
- 音频波形文件(*.wav)(Frq:14400Herz)
- 器官在每一刻的状态(单位:帧)
中间参数
“中间参数”为模型间传递的数据
单纯的“模型”一词就隐含着以下部分条件:
- 通用的
- 可复现
这也就要求这模型的中间参数是可迁移的,或者说是能够转移对象的(比如把郭乐乐在嗯♂啊时声道的动作直接作为另一个模型的输入)。换言之,对模型间的参数的定义及设计,必须要消除,或者说是削减,语料库中的个体差异。
但是,人与人的差异极大(比如说是在对于a的定义etc.),所以:
<1.>设计一个新标准或是新协议,就显得尤为重要。
<2.>我们可以采用多人标注的方法来减小这个影响,产生各个参数的分布,e.g. [... t = 12.52 : "a" = 0.89, "o" = 0.09,"e" = 0.02; ...]
。
预处理模型
'text -> phone'(MI-T) & 'abstracted emotion label -> PAD parament model'(MI-E)
其中,在相同的时刻,MI-E对MI-T存在影响(因果上的影响)
(生成的音素模型并不是单纯的IPA)
动作生成模型
动作分为两类:可控制和不可控制;其中,可控制分为意识驱动和非意识驱动
Dataset preperation
传感器的设计
该板块主要为未存在的内容
躯干建模相关的传感器
定位点:
- define TOP-POINT 第七颈椎’C7’
- ~~define BUTTOM-POINT 尾椎(0.0,0.0,0.0)(**)’’~~
- define FORWARD-DIRECTION (命门穴(L4-L5) -> 肚脐)
采样点:
[基本 basic points]
- 肚脐(M)‘Nv’
- 乳头(L,R)
(实际测量时要隔着xx/也就是说最好穿一款xx)(甭管男女,男女一样)‘NpL’,‘LpR’
[边缘]
- 躯干上边缘
- 胸骨柄上缘
- 锁骨外端(L,R)
- 躯干下边缘
- 耻骨联合
- 骨盆边缘
- 肋骨下缘
- 肋弓(30,60,90,120;L,R)
- 剑突(0)
[肋骨]
[胸骨]
[腰腹部]
[脊柱 vertebral column]
- 颈椎
- C1
- C7
- 胸椎
- T2
- T4
- T6
- T8
- T10
- T12
- 腰椎
- L1
- L2
- L3
- L4
- L5
- 骶椎(仅仅用作定位,如果能够依靠其他固定点定位,这个可以省去)
- 骶骨尖
- 尾骨尖
传感器机理探究:
原理为通过对标识点进行距离的测算,从而可以对躯干进行三维重建。
所以,信息就是可以较为精确地测算距离。
涉及三维重建
喉部成像
唇舌及咽肌成像
情绪捕捉
生理信号
生理信号的测量通常包括皮肤电活动(EDA,也称为皮肤电导),肌电图(EMG),心电图(ECG),血容量脉冲(BVP),脑电图(EEG),呼吸与体温,这些能反映出交感神经和副交感神经系统的调节机制。生理信号主要使用特殊的非侵入性表面电极(用于EDA,EMG,ECG和EEG)、血容量脉冲传感器(BVP)、呼吸带(呼吸)与热传感器(体温)来记录。内分泌与免疫学参数也能被记录下来,但这些测量在某种程度上具有侵入性(例如,血液采样)。
采集
设备
- 环境:
隔音并且能够吸音
传感器间采集的数据不会因其他传感器产生大的干扰
较为舒适(加一个空调)
- 生物传感器:
在志愿者的躯干上安装能够被检测出空间坐标的定位传感器 => 对以躯干为主对象的呼吸模型进行建模
通气量检测 => 与上个传感器共同进行呼吸模型的建模
- 麦克风:
电容麦(能够)
安排
录音阶段(除阶段1,2,暂定各5个小时):
- [允许情感注入] 呼吸,佩带除了麦克风外的所有传感器
- [无感情的]-[无韵律的] IPA发音
- [无感情的]-[有韵律的] 念该语言的句子
- [小学生念课文的那种感情]-[有韵律的] 念课文
- [允许情感注入] 情景对话
- [允许情感注入] 意识流内容输出
**注:“允许情感注入”是允许志愿者自由的表达感情;而“有感情的 ”,及“小学生念课文的那种感情 ”的情感表达为受控的*
内容:
略
多次录音(阶段2,3,4):
- 正常
- 耳语
- 闭气,只动口型
后期标注(阶段2,3,4,5,6):
voice: &demo
meta:
stage: 0 # Int, 1~6
id: null # UUID
time: # begin and end, Timestamp
begin: 2023-04-17T15:02:31+08:00
end: 2023-04-17T15:02:39+08:00
speaker:
id: 0 # Hex
sexaul: null # String, "M" or "F"
age: 0 # Int
body: # ALL child node use link
lable: null
# wav:
# act:
# air:
ext:
emt: null # Emotion
# gsr:
# femg: # Facial EMG
# pl: # Heartbeat
lgt: null # Language
# phoneme:
# word:
# sentence:
# Stage I:
voice:
<<: *demo
meta:
stage: 1
id: 152bab47-f462-4326-ab6f-3450160983e1
time:
begin: 2023-04-15T19:06:10+08:00
end: 2023-04-15T19:08:30+08:00
speaker:
id: 0x0e5a
sexaul: "F"
age: 19
body:
lable:
wav: "/wave/152bab47-f462-4326-ab6f-3450160983e1.wav"
act: "/br/act/152bab47-f462-4326-ab6f-3450160983e1/"
air: "/br/ar/152bab47-f462-4326-ab6f-3450160983e1.edf"
ext:
emt:
gsr: "/emt/sc/152bab47-f462-4326-ab6f-3450160983e1.edf"
femg: "/emt/fcm/152bab47-f462-4326-ab6f-3450160983e1/"
pl: "/emt/pl/152bab47-f462-4326-ab6f-3450160983e1.edf"
# Stage II:
voice:
<<: *demo
meta:
stage: 2
id: b81a189c-f4a0-476e-90f8-7f3811396f30
time:
begin: 2023-05-07T09:45:23+08:00
end: 2023-05-07T09:57:05+08:00
speaker:
id: 0x0e5a
sexaul: "F"
age: 19
body:
lable:
wav: "/wave/b81a189c-f4a0-476e-90f8-7f3811396f30.wav"
act: "/br/act/b81a189c-f4a0-476e-90f8-7f3811396f30/"
air: "/br/ar/b81a189c-f4a0-476e-90f8-7f3811396f30.edf"
ext:
lgt:
phoneme: "/lgn/pht/b81a189c-f4a0-476e-90f8-7f3811396f30"
# Stage III:
voice:
<<: *demo
meta:
stage: 3
id: a7cbee8e-07ad-4ce7-a915-58aa6f256fde
time:
begin: 2023-04-17T09:45:56+08:00
end: 2023-04-17T09:57:00+08:00
speaker:
id: 0x0e5a
sexaul: "F"
age: 19
body:
...
情感(PAD模型)
拼音
汉字,句子成分
数据处理(DAQ)
实时的采集会产生大量的数据,如何同步(时间上的)
最好用开源的,其次是应用广泛的商业产品
数据库
- 本地:PostgreSQL/MongoDB
- 服务器:PostgreSQL
硬件
本地开发+租用
模型的实现
暂定Python3+第三方库(PyTorch/…)
与其他模型的协同
本计划的终极目的之一就是实现对于人物整体的动作的展现(也就是动画制作方面),所以,与其他模型的协同就显得尤为重要。
该模型所涉及的部位:头颈部、躯干(主要体现在胸腹部的隆起),其中头颈部主要包括:表情,下颌及喉部移动。
参与
人士:
略 相关项目:
略
开发日志
参见以下目录:
- 2017~2018 项目雏形开始产生
- 2019-07-04 项目落户
- 2019-07-27 进一步填充
- 2019-07-30 找到前期资料
- 2019-11-06 暂时搁置
- 2019-11-13 填充文件及修改错误
- 2021-02-12 无限期中止此计划,将资源侧重于protoQy
- 2022-11-16 根据技术的更新修改了部分内容