语音任务
语音
- 分割
- 转文字
- 文字-实际文字配对
text-to-speech (TTS)
VAD-python
需要给定一些超参数,如窗口等
改动该参数,不大行
silero-vad-master
修改代码之后可以得到分离或者合并的声音
- run silero-vad.ipnb
语音识别
parrots
这个项目看web页面好像不大灵。
Chinese-automatic-speech-recognition
语音匹配
获取的翻译为utf-8编码,获取的gt为gbk编码
读写txt需要进行编码选择
exl表格语音-文本,需要成功匹配。
剧本gt获取
通过splitewps.py,选取”角色:“为关键词。在splitewps.py中运行splite_word(word),注意word(角色名)中的关键词长度不同,不能直接通过[4:]的方式截取台词部分
其中,word为一个包含角色名的list
1 | # word=["辛倩:","安灵:","纪书兰:"] |
将不同角色的台词分离为以角色名命名的txt文件
1 | ### luan.txt |
- 最终的输出形式为人名命名的txt文件
语音转文字
所得翻译文本一行对应一个音频,对应音频按照数字递增+wav后缀即可
/data/project/ASR 使用服务器yh下的该项目,之前把识别为空的wav没有加上空行
虽然实际上识别为空行的非常少,但是确实有一两句话是有空行的,主要是行号要和wav文件名对应
导致识别语句和实际音频会有错位
需要重写代码,加入空行语句
语音-文本匹配
在匹配过程中,删除了一些空行。
字典1{“fanyi”,“翻译文件名称.wav”}
判定翻译与gt后,加入索引,索引能够对应同一个gt即可,获得字典2{ “fanyi”:”” , “pipe”: “”},按照“pipei”字段,最后汇总表格。获得gt(文字一行)-fanyi(音频文件名 多个)
字典1,字典2 字段合并
单条文本可以对应多条语音
文本带有标点,但是使用无标点的文本 和 文本转文字 获得的文字进行匹配
只对能匹配的文本进行匹配
最终获得表格-包括语句-对应音频文件名多个
之后进行音频的合并
0 | 随便找个宾馆吧 | 随便找个宾馆吧,明天九点接我去公司,下午回家。 | 0.wav |
---|---|---|---|
1 | 明天九点接我去公司下午回家 | 随便找个宾馆吧,明天九点接我去公司,下午回家。 | 1.wav |
- 解决了空识别跳过导致的wav名称和内容不匹配的问题,可能只有一处是空识别
- 依据标点分割
- 分为两种情况
- 是子集,则直接放入语音识别的文本到字典
- 不是子集,但是有一定的相似度,则放gt文本到字典
语音fake生成
https://github.com/CorentinJ/Real-Time-Voice-Cloning/
- 中文无法使用,有
- 使用给定的英文音频可以使用
https://huggingface.co/spaces/Kevin676/ChatGPT-with-Voice-Cloning-for-All
- 不大行
- 作者建议使用女声进行voice clone,生成声音完全不像
https://github.com/vincentherrmann/pytorch-wavenet
- 跑不起来,数据集搞不懂
https://github.com/PaddlePaddle/PaddleSpeech/wiki/PaddleSpeech-CLI-Architecture
paddle应该是可以用的
https://www.bilibili.com/read/cv20153960 MockingBird
实际上是对Real-Time-Voice-Cloning使用了中文的预训练模型并开发了前端。
不大行。封装版本无法进行训练,作者建议使用女声进行测试
弄不好
https://github.com/SayaSS/vits-finetuning
日语vit模型,python讲日语的库无法安装
https://huggingface.co/spaces/innnky/trump/blob/main/app.py
看出使用了transformer模块,可能使用的是vits
trump微调模型,中文也能跑,声音奇奇怪怪的但是还行。
使用英文转trump效果还行,比如使用希拉里转trump
https://github.com/PlayVoice/vits_chinese
中文VITS,还没跑完,数据集搞不懂
https://github.com/Plachtaa/VITS-fast-fine-tuning
在colab上跑,fine tune训练有问题,可能是样本不足的问题。
colab用完了免费算力。
重新测试,使用大约12分钟的训练数据集,大概能看
- 2023/4/25 感觉TTS(text to speech):200epoch的模型测试还行
- 可以使用vc(voice clone),但是需要转换前后都有声音模型,即需要已知音频之间的转换
- 重新使用大约30分钟的音频训练效果还行,有那个味道。
paddlespeech https://aistudio.baidu.com/aistudio/projectdetail/4573549?sUid=2470186&shared=1&ts=1663753541400
https://aistudio.baidu.com/aistudio/projectdetail/6037057
paddle speech 以及对应项目
paddle speech使用一句话生成,使用男声数据可能不大行,使用女声感觉还可以。和预训练数据集有关
https://github.com/jerryuhoo/VTuberTalk
基于paddlespeech的语音合成项目,音频-视频转数据集代码根本跑不起来
https://github.com/svc-develop-team/so-vits-svc
唱歌so-vtis,和vits算法的 不同之处在于so-vits
vits | so-vits | |
---|---|---|
用于正常语音合成 | singing voice conversion唱歌的 | |
不支持未知语音2语音转换 | 支持未知语言2现有语音转换 | |
AI部属库
- Gradio
能够简单实现AI/图像算法部署web,在localhost中部署
就是把前后端的一些通用的东西集成了,只改变算法部分。
只要给出输出输出,数量和给定的算法函数对应就能跑
基本框架如下:使用前先加载模型,并设置对应函数
1 | app = gr.Blocks() |