【语音转换:客观评价MCD如何计算?】

这篇具有很好参考价值的文章主要介绍了【语音转换:客观评价MCD如何计算?】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

计算MCD值

写在前面:感谢github作者Lukelluke,更为详细的参考可点击:Lukelluke

  1. 准备mcd和merlin-master

  2. 准备源语音和转录的语音。 创建两个文件夹,分别存放原语音和转录的语音。源语音和转录的语音要一一对应,文件名一定要相同,否则无法计算。

    mkdir org
    mkdir convert
    
  3. 获取mgc,bap,lf0文件。

     cd merlin-master/egs/voice_conversion/s1/
     ./01_setup.sh sperakera speakerb
    

    sperakera、speakerb会建在database文件夹下面,将org中的源语音文件和convert中的转换的语音分别拷贝到sperakera和speakerb中, 然后执行以下命令:

    ./02_....sh database/sperakera database/sperakera_extract
    ./02_....sh database/sperakerb database/sperakerb_extract
    

    将会把.mgc, .bap, .lf0 三类文件分别提取到sperakera_extract和sperakerb_extract中。
    提取完成后:
    (1)将源语音(也就是sperakera_extract文件夹下)的.mgc文件复制到 mcd/test_data/ref-examples下,
    (2)将转录的语音(也就是sperakerb_extract文件夹下).mgc .bap .lf0三种类型的文件复制到mcd/test_data/synth-examples下

  4. 计算MCD
    将所有源语音和转录语音相互对应的文件名,写入到mcd/test_data/corpus.lst中。 然后执行命令:

    cat test_data/corpus.lst | xargs bin/dtw_synth test_data/ref-examples test_data/synth-examples out
    

    即可计算

corpus.lst文件参考示例:

	p229_p362_081
	p260_p343_386

只有文件名,不带后缀,且保证源文件和转录语音文件名相同文章来源地址https://www.toymoban.com/news/detail-414265.html

注: 如果报错,可以尝试修改mcd/bin/dtw_synth中import htk_io.vecseq as vsio的vecseq。ctrl点击进去修改即可
def readFile(self, vecSeqFile):
    """Reads a raw vector sequence file.
    
    The dtype of the returned numpy array is always the numpy default
    np.float, which may be 32-bit or 64-bit depending on architecture, etc.
    """
    Vec = np.fromfile(vecSeqFile, dtype=self.dtypeFile)
    lengthOfVec = len(Vec)
    misLenToPad = lengthOfVec % self.vecSize
    means = np.mean(Vec)

    for i in range(misLenToPad):
        Vec = np.insert(Vec, lengthOfVec, means)

    return np.reshape(
        Vec,
        (-1, self.vecSize)
    ).astype(np.float)

    # return np.reshape(
    #     np.fromfile(vecSeqFile, dtype=self.dtypeFile),
    #     (-1, self.vecSize)
    # ).astype(np.float)
根据转换的文件,复制多份对应的源文件,使其文件名对应
# python2
def mycopy3():
    org_path = "/mnt/hgfs/VmwareShare/mcd/org"
    opt4_path = "/mnt/hgfs/VmwareShare/mcd/test"
    opt4_outpath = "/mnt/hgfs/VmwareShare/mcd/test_output"

    for wav in os.listdir(org_path):
        name1 = wav
        # print name1
        for con_name in os.listdir(opt4_path):
            name2 = con_name.split('_')
            print name2
            name3 = name2[1].strip("C") + "_" + name2[2] + ".wav"
            print name3
            if name3 == name1:
                shutil.copy(os.path.join(org_path, name1), os.path.join(opt4_outpath, con_name))

列出不带.wav后缀的文件名
# python2
def list_filename2():
    org_path = "/home/ubuntu/Downloads/merlin-master/egs/voice_conversion/s1/database/speakerb"
    for filename in os.listdir(org_path):
        print filename.strip(".wav")

到了这里,关于【语音转换:客观评价MCD如何计算?】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【实用技巧】掌握人工智能语音转换的核心技术,轻松实现多语言语音转换和语音合成

    作者:禅与计算机程序设计艺术 【实用技巧】掌握人工智能语音转换的核心技术,轻松实现多语言语音转换和语音合成 1.1. 背景介绍 随着全球化的加速,跨文化交流需求日益增长,多语言语音转换和语音合成技术应运而生。人工智能技术的发展为语音合成和转换提供了便利

    2024年02月08日
    浏览(45)
  • 百度正式推出「文心一言」,然而港股股价已暴跌近 10%,客观来说其能力与 ChatGPT 相较如何?...

    击上方关注 “ 终端研发部 ” 本文首发于我的知乎:- 终端研发部的回答 - 知乎 https://www.zhihu.com/question/589941496/answer/2939249471 近几日,最火的就是ChatGPT了,比如今天推出的GPT-4 和百度推出的[文心一言]就让今天的很多板块波动很大! 随着GPT-4重磅发布,这意味着OpenAI对ChatGP

    2024年02月11日
    浏览(29)
  • Unity如何实现让Sprite和UI显示在模型前面而不会被模型遮挡

    在不使用Shader的情况下实现UI显示在模型前面方法 ps:本人只做记笔记使用 使用前: 使用后: 1.首先需要把显示的UI或者Sprite的层级设置为UI层或者你自定义的层 2.创建俩个摄像机 3.主摄像机不变,需要渲染的层级依旧是Everything 次摄像机的CullingMask只选择UI或者自定义层,以

    2024年02月22日
    浏览(29)
  • element-ui控件el-select如何在前面添加icon图标

    在element-ui中input可以使用prefix-icon=“el-icon-user” 在前面添加icon图标,但是select自己没有该属性。那么如何在element-ui控件el-select前面前面icon图标 代码如下(示例): 这里使用了 template #prefix 来替换,因为我使用的是element-plus ,如果使用的是element-ui 则直接使用slot替换

    2024年02月11日
    浏览(40)
  • 【Turfjs的java版本JTS】前面讲了Turfjs可以实现几何计算,空间计算的功能,如果后端要做这项功能也有类似的类库,JTS

    JTS = Java Topology Suite 几何计算: 1. 前端js就用这个 Turfjs的类库。参考网站: 计算两线段相交点 | Turf.js中文网 2. 后端java语言就可以用 JTS这个类库,参考网站:  JTS参考网站: 1. https://github.com/locationtech/jts GitHub - locationtech/jts: The JTS Topology Suite is a Java library for creating and m

    2024年02月09日
    浏览(29)
  • 【计算机网络 01】说在前面 信息服务 因特网 ISP RFC技术文档 边缘与核心 交换方式 定义与分类 网络性能指标 计算机网络体系结构 章节小结

    说在前面 本博客专栏都是基于B站上的湖科大计算机网络课程的课程笔记,主要是由于我发现无法从课程网站获得清晰PDF作为复习资料,所以制作此笔记同时也方便其他同学复习回顾,并且有少量补充参考 https://www.jianshu.com/u/5807cd8caf1d 同学的笔记 1.1 计算机网络 信息时代作用

    2024年02月16日
    浏览(37)
  • 目标检测常用评价指标及其计算方法

    前传耗时(ms) :从输入一张图像到输出最终结果所消耗的时间,包括前处理耗时(如图像归一化)、网络前传耗时、后处理耗时(如非极大值抑制); 每秒帧数FPS(Frames Per Second) :每秒中能处理的图像数量; 浮点运算量(FLOPS) :处理一张图像所需要的浮点运算数量,跟具体软

    2024年02月06日
    浏览(35)
  • Java与智能语音识别:实现准确的语音识别与转换

    Java与智能语音识别是指利用Java编程语言和智能语音处理技术实现准确的语音识别和转换。下面是一个详细的教程,介绍了如何使用Java构建智能语音识别系统: 1. 音频数据采集:    - 使用Java提供的音频采集库(如Java Sound API)获取音频数据流。    - 连接麦克风设备或读取

    2024年02月08日
    浏览(29)
  • 文本语音互相转换系统设计

    title: 文本语音互相转换系统设计 date: 2024/4/24 21:26:15 updated: 2024/4/24 21:26:15 tags: 需求分析 模块化设计 性能优化 系统安全 智能化 跨平台 区块链 第一章:背景与意义 文本语音互相转换系统的定义与作用 文本语音互相转换系统是一种能够将文本信息转换为语音,或将语音信息转

    2024年04月24日
    浏览(27)
  • 语音怎么转换成文字?分享两种语音转文字的方法

    怎么把语音文件中的内容转换成文字呢?大家在日常的学习和办公过程中,在遇到一些重要内容或者是讲话,是不是会有将它录成语音的经历?因为这样会方便我们及时记录一些重要的内容,但当我们整理语音时,还要一句一句听并写下来,还是挺耗费时间的,今天教大家两

    2024年02月17日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包