录制语音并将其训练为TTS语音

2020-12-09 19:52:12

Mycroft开源Mimic技术是文本到语音引擎,它采用一段书面文本并将其转换为语音音频。该技术的最新一代,即Mimic 2,使用机器学习技术来创建一个能够说一种特定语言的模型,听起来像是经过训练的配音。

Mimic Recording Studio简化了个人培训数据的收集,每个培训数据都可用于为Mimic发出独特的声音。

docker-compose up来构建和运行(注:根据您的发行版,您可能需要使用sudo docker-compose up)

注意:第一次执行docker-compose up会花费一些时间,因为此命令还将构建docker容器。随后执行docker-compose up应该更快启动。

音频以WAV文件格式保存到backend / audio_file / {uuid} /目录。后端使用ffmpeg自动修剪所有WAV文件的开始和结束静音。

元数据也保存到backend / audio_file / {uuid} /。此文件将WAVfile名称映射到口语短语。这与WAV文件一起是开始训练Mimic 2所需要的。

现在,我们有一个英语语料库english_corpus.csv可用,可以在backend / prompt /中找到。若要使用自己的语料库,请按照下列步骤操作。

使用tabs(\ t)作为分隔符,以与english_corpus.csv相同的格式创建一个csv文件。

如果您希望使用英语以外的其他语言来开发语料库,则可以使用Mimic Recording Studio用其他语言来为TTS语音制作语音录音。如果您使用英语以外的其他语言来建立语料库,我们建议您选择以下短语:

重要说明:目前,您必须重置sqlite数据库以使用新的语料库。如果您已在另一个语料库上录制并想要保存该数据,则只需将在backend / db /中找到的sqlite数据库重命名为另一个名称。后端将检测到mimicstudio.db不存在,并为您创建一个新的。您可以继续记录新语料的数据。

Web UI使用Javascript和React以及create-react-app作为ascaffolding工具构建。请参阅CRA.md以了解有关如何使用create-react-app的更多信息。

该Web服务是使用Python,Flask作为后端框架,gunicorn作为http Web服务器以及sqlite作为数据库来构建的。

Docker用于对两个应用程序进行容器化。默认情况下,前端使用网络端口3000,而后端使用网络端口5000。您可以在docker-compose.yml文件中进行配置。

注意:如果您正在运行docker-registry,则默认情况下该端口在端口5000上运行,因此您需要更改使用的端口。

发出声音需要可实现的但需要很大的努力。个人需要记录15,000-20,000个短语。为了获得最佳的模仿声音,录音必须干净且一致。为此,请遵循以下建议:

使用减噪材料在安静的环境中录音。如果您的耳朵能听到外界的噪音,麦克风也可以。为了获得最佳效果,甚至应避免通过通气孔吹空调的声音。光秃秃的墙壁会产生细微的回声和混响。消音棚是理想的选择,但您也可以在壁橱中使用柔软的材料(例如隔音棉)创建自制录音棚。床罩和床垫也可以有效使用!

以一致的音量和速度说话。匆忙通过这些短语只会导致语音质量降低。

请使用优质的麦克风。为获得一致的效果,我们建议您使用头戴式麦克风,使您的嘴与麦克风的距离始终相等。

避免声音疲劳:每天最多录制4个小时,每半个小时休息一下。

Mimic-Recording-Studio将所有记录写入位于/ backend / db /下的sqlite数据库文件中。可以使用DBeaver等数据库工具打开它。

-列出所有录音SELECT * FROM audiomodel; -按短语SELECT * FROM audiomodel WHERE created_date BETWEEN' 2020-01-01'列出2020年1月顺序的录音AND' 2020-01-31' ORDER BY提示; -列出每天的录音数量SELECT DATE(created_date),COUNT(*)AS RecordingsPerDay从audiomodel GROUP BY DATE(created_date)ORDER BY DATE(created_date)-显示录音的平均文本长度SELECT AVG(LENGTH(prompt))从音频模型中获取avgLength

查询sqlite数据库有很多方法可能有用。例如,在特定时间范围内查找录音可能有助于删除在恶劣环境下制作的录音。

使用同一sqlite数据库文件的多个发言人可以使用Mimic-Recording-Studio。

这些值用于计算指标。例如,说话速度可以显示出与先前的记录相比,所记录的短语是太快还是太慢。

查询表" usermodel"获取发言人列表,包括uuid和一些录音数据。

用于记录短语的浏览器将用户的uuid和名称保留在其本地存储中,以使其与sqlite和文件系统同步。

如果出现问题并且您的浏览器为Mimic-Recording-Studio松开/更改了uuid映射,则可能难以继续上一个录制会话。然后在浏览器的localStorage中更新以下两个属性:

在浏览器中打开Mimic-Recording-Studio,跳至Web开发人员选项,localStorage,并将名称和uuid设置为原始值。

之后,您应该可以继续之前的录制会话,而不会出现其他问题。 我们欢迎您将语音捐赠给Mycroft,以用于“文字转语音”应用程序。 如果您想提供自己的录音,则必须根据“知识共享CC0公共领域”许可将其许可给我们,以便我们可以在TTS语音中使用它们-这是衍生作品。 如果您准备捐赠语音记录,请发送电子邮件至[email protected]