paddlespeech 声纹识别embedding向量提取;TTS文本合成语音

news2024/9/24 13:22:32

1、声纹识别embedding向量提取

参考:
https://aistudio.baidu.com/aistudio/projectdetail/4353348

https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/demos/speaker_verification/README_cn.md

https://aistudio.baidu.com/aistudio/projectdetail/4353348

  • 注意
    1)安装paddlespeech,参考:
    https://blog.csdn.net/weixin_42357472/article/details/131269539?spm=1001.2014.3001.5502

    2)运行代码过程中下载模型报错RuntimeError: Download from https://paddlespeech.bj.bcebos.com/vector:

    可以自己离线下载下来,根据提示下载链接https://paddlespeech.bj.bcebos.com/vector/voxceleb/sv0_ecapa_tdnn_voxceleb12_ckpt_0_2_0.tar.gz,paddlespeech模型一般放在C:\Users\loong.paddlespeech\models下;注意这边模型目录结构一般是如下,并且tar包也要放在一块才可以
    在这里插入图片描述

在这里插入图片描述

使用

** paddlespeech提取向量维度是192

1)命令行使用:

paddlespeech vector --task spk --input zh.wav

paddlespeech vector --task score --input "./85236145389.wav ./123456789.wav"

在这里插入图片描述

2)向量提取代码使用:

from paddlespeech.cli.vector import VectorExecutor
vec = VectorExecutor()
result = vec(audio_file="zh.wav")
from paddlespeech.cli.vector import VectorExecutor

vector_executor = VectorExecutor()
audio_emb = vector_executor(
    model='ecapatdnn_voxceleb12',
    sample_rate=16000,
    config=None,  # Set `config` and `ckpt_path` to None to use pretrained model.
    ckpt_path=None,
    audio_file='./85236145389.wav',
    device=paddle.get_device())
print('Audio embedding Result: \n{}'.format(audio_emb))

3)声纹相似度计算:

import paddle
from paddlespeech.cli.vector import VectorExecutor

vector_executor = VectorExecutor()
audio_emb = vector_executor(
    model='ecapatdnn_voxceleb12',
    sample_rate=16000,
    config=None,  # Set `config` and `ckpt_path` to None to use pretrained model.
    ckpt_path=None,
    audio_file='./85236145389.wav',
    device=paddle.get_device())
print(audio_emb.shape)
print('Audio embedding Result: \n{}'.format(audio_emb))

test_emb = vector_executor(
    model='ecapatdnn_voxceleb12',
    sample_rate=16000,
    config=None,  # Set `config` and `ckpt_path` to None to use pretrained model.
    ckpt_path=None,
    audio_file='./123456789.wav',
    device=paddle.get_device())
print(test_emb.shape)
print('Test embedding Result: \n{}'.format(test_emb))

# score range [0, 1]
score = vector_executor.get_embeddings_score(audio_emb, test_emb)
print(f"Eembeddings Score: {score}")

底层相似度计算用的CosineSimilarity,结果越大越好

在这里插入图片描述

2、TTS文本合成语音

参考:
https://aistudio.baidu.com/aistudio/projectdetail/5237474
https://www.jianshu.com/p/a7522ca6dec4
https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/demos/text_to_speech/README_cn.md

1)过程中需要下载的TTS 声学相关模型(网络不好的话):

PaddleSpeech支持的声学模型:
 ['speedyspeech_csmsc-zh', 'fastspeech2_csmsc-zh', 'fastspeech2_canton-canton', 'fastspeech2_ljspeech-en', 'fastspeech2_aishell3-zh', 'fastspeech2_vctk-en', 'fastspeech2_cnndecoder_csmsc-zh', 'fastspeech2_mix-mix', 'fastspeech2_male-zh', 'fastspeech2_male-en', 'fastspeech2_male-mix', 'tacotron2_csmsc-zh', 'tacotron2_ljspeech-en', 'pwgan_csmsc-zh', 'pwgan_ljspeech-en', 'pwgan_aishell3-zh', 'pwgan_vctk-en', 'pwgan_male-zh', 'mb_melgan_csmsc-zh', 'style_melgan_csmsc-zh', 'hifigan_csmsc-zh', 'hifigan_ljspeech-en', 'hifigan_aishell3-zh', 'hifigan_vctk-en', 'hifigan_male-zh', 'wavernn_csmsc-zh', 'fastspeech2_mix-zh', 'fastspeech2_mix-en', 'pwgan_male-en', 'pwgan_male-mix', 'hifigan_male-en', 'hifigan_male-mix']

https://paddlespeech.bj.bcebos.com/Parakeet/released_models/fastspeech2/fastspeech2_nosil_baker_ckpt_0.4.zip

https://paddlespeech.bj.bcebos.com/Parakeet/released_models/hifigan/hifigan_csmsc_ckpt_0.1.1.zip

https://paddlespeech.bj.bcebos.com/Parakeet/released_models/g2p/G2PWModel_1.1.zip

https://paddlespeech.bj.bcebos.com/Parakeet/released_models/fastspeech2/fastspeech2_canton_ckpt_1.4.0.zip ##粤语模型
在这里插入图片描述
fastspeech2_csmsc-zh、hifigan_csmsc-zh这两个模型要放在1.0文件夹下,记得压缩包也要放进去;G2PWModel直接放在models目录下
*** am=‘fastspeech2_csmsc’, # TTS任务的声学模型
voc=‘hifigan_csmsc’, # TTS任务的声码器
G2PWModel是音素模型***
在这里插入图片描述

2)需要使用nl bert相关包下载:
默认放在如下地址:
https://bj.bcebos.com/paddle-hapi/models/bert/bert-base-chinese-vocab.txt

如果下载报ssl等问题,可以修改***Lib\site-packages\paddlenlp\utils下downloader.py对应requests位置添加verify=False(191、440行)

requests.get('*****‘’,verify=False)
在这里插入图片描述

在这里插入图片描述

使用

1)命令行

paddlespeech tts --input "湖北十堰竹山县的桃花摇曳多姿,和蓝天白云一起,构成一幅美丽春景。" --output output1.wav --am fastspeech2_csmsc --voc hifigan_csmsc --lang zh --spk_id 174

在这里插入图片描述

2)代码

from paddlespeech.cli.tts import TTSExecutor

tts_executor = TTSExecutor()

wav_file = tts_executor(
    text='湖北十堰竹山县的桃花摇曳多姿,和蓝天白云一起,构成一幅美丽春景。',
    output='output.wav',  # 输出音频的路径
    am='fastspeech2_csmsc',  # TTS任务的声学模型
    voc='hifigan_csmsc',  # TTS任务的声码器
    lang='zh',  # TTS任务的语言
    spk_id=174,  # 说话人ID
)

在这里插入图片描述

粤语合成
from paddlespeech.cli.tts import TTSExecutor

tts_executor = TTSExecutor()

wav_file = tts_executor(
    text='湖北十堰竹山县的桃花摇曳多姿,和蓝天白云一起,构成一幅美丽春景。',
    output='output5.wav',  # 输出音频的路径
    # am='fastspeech2_csmsc',  # TTS任务的声学模型
    am="fastspeech2_canton",
    voc='hifigan_csmsc',  # TTS任务的声码器
    lang='canton',  # TTS任务的语言
    spk_id=2,  # 说话人ID
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache Zeppelin 番外篇——参与开源的得与失

背景 经常在公司做一些业务开发,公司里面由于各种人员流动等问题,导致代码质量也是参差不齐,最终问题就是很难维护,前期还想着能够优化代码,但是大部分时间都是需求都是倒排期,所以也导致不再想进行代码优…

车联网 CAN Bus 协议介绍与数据实时流处理

什么是 CAN Bus? CAN(Control Area Network)Bus 是一种串行通信协议,能够让设备之间可靠而高效地传输数据。它广泛应用于车辆领域,像神经系统一样连接车辆内部的各个电子控制单元。 CAN Bus 最初由博世公司在 20 世纪…

matlab合并/拼接多个excel表

一、 说明:Excel中数据含有 日期,double如何实现多个表合并 解: path E:\xxx\; namelist dir([path,*.csv]); L length(namelist); a []; for i 1:Lfilename{i} [path,namelist(i).name];bb readtable(filename{i},Range,A1:G2881)…

智能指针

目录 RAII auto_ptr unique_ptr shared_ptr shared_ptr的循环引用 weak_ptr 删除器 智能指针的出现主要是针对程序的资源泄露问题而产生的。 RAII RAII(Resource Acquisition Is Initialization)是种利用对象生命周期来控制程序资源的简单技术。 在对象构…

2024考研408-计算机组成原理第四章-指令系统学习笔记

文章目录 前言一、指令系统现代计算机的结构1.1、指令格式1.1.1、指令的定义1.1.2、指令格式1.1.3、指令—按照地址码数量分类①零地址指令②一地址指令(1个操作数、2个操作数情况)③二地址指令④三地址指令⑤四地址指令 1.1.4、指令-按照指令长度分类1.…

c#泛型类

派生抽象基类 public abstract class cal<T> {public abstract T add(); }public class ab : cal<string> {public override string add(){return null;} }泛型类的静态成员 public class cal<T> {public static int X9; }public class ab : cal<strin…

detr(detection transformer)模型训练自己的数据集

目录 1.detr源码下载 2. 编译配置 3. 编译报错问题 4. 训练过程打印参数解读 1.detr源码下载 GitHub - facebookresearch/detr: End-to-End Object Detection with Transformers 2. 编译配置 编译参数只需要传递数据集路径即可&#xff0c;数据集格式是coco数据集类型 数…

投稿TMC的感受

投稿任务告与段落了&#xff0c;最终的结果是被TMC给early reject了。这神一样的审稿意见让我真的是老头地铁看手机啊&#xff01;所以虽然TMC没有给我rebuttal的机会。所以我还是打算在CSDN进行一次rebuttal。 其实我做的东西很简单&#xff0c;就是把时间序列中的将时间序列转…

FreeRTOS学习笔记—基础知识

文章目录 一、什么是RTOS二、前后台系统三、实时内核&#xff08;可剥夺型内核&#xff09;四、RTOS系统五、FreeRTOS系统简介六、FreeRTOS源码下载 一、什么是RTOS RTOS全称为:Real Time OS&#xff0c;就是实时操作系统&#xff0c;核心在于实时性。实时操作系统又分为硬实时…

git查看/切换远程仓库

文章目录 一、查看远程仓库地址二、切换远程仓库地址三、整体演示 一、查看远程仓库地址 命令&#xff1a; git remote -v二、切换远程仓库地址 命令&#xff1a; git remote set-url <新的远程仓库地址>三、整体演示

pg报错attempted to delete invisible tuple

问题描述 postgresql数据库执行delete报错&#xff1a;attempted to delete invisible tuple&#xff0c;执行同样条件的select不报错 delete from lzltab1; select count(*) from lzltab1;执行全表删除和全表查询的结果&#xff1a; M# delete from lzltab1; ERROR: 5500…

有一个三位数,他的各个位数的阶乘相加得到这个数

有一个三位数,他的各个位数的阶乘相加得到这个数 1.描述 有一个三位数,它的各个位数的阶乘相加得到这个数 2.代码 输入数据 依次对个位&#xff0c;十位和百位进行拆解计算阶乘 然后相加看看是不是和原来的数据是相等 public class Mian4 {public static void main(String[…

ROS系列报错与解决方法

6.28 一、问题描述 ROS运行roscore命令后发现提示log文件(日志文件)大小超过1G,需要清理 Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt WARNING: disk usage in log directory [/home/wht/.ros/log] is over 1GB. Its recom…

红外线探测防盗报警器电路设计

该报警器能探测人体发出的红外线&#xff0c;当人进入报警器的监视区域内&#xff0c;即可发出报警声&#xff0c;适用于家庭、办公室、仓库、实验室等比较重要场合防盜报警。 一、电路工作原理 电路原理如图4所示。 该装置由红外线传感器、信号放大电路、电压比较器、延时…

这可能是最简单的Page Object库

做过web自动化测试的同学&#xff0c;对Page object设计模式应该不陌生。 Page object库应该根据以下目标开发&#xff1a; Page object应该易于使用 清晰的结构 PageObjects 对于页面对象 PageModules对于页面内容 只写测试&#xff0c;而不是基础。 在可能的情况下防止样…

【AI 充电】KServe + Fluid 加速大模型推理

作者&#xff1a;黄驰琳、露营、车漾 背景 KServe 是 Kubernetes 上的标准模型推理平台&#xff0c;专为高度可扩展的场景而构建&#xff0c;支持现代 Serverless 推理工作负载&#xff0c;用于在任意框架上提供机器学习&#xff08;ML&#xff09;模型服务。它提供高性能、高…

菜鸡shader:L5 fresnel、matcap和cubemap

文章目录 Fresnelshader forge实现UE4蓝图实现 Matcapshader forge实现UE4蓝图实现 CubeMapSD和PS制作所需的贴图shader forge实现unity代码实现UE4蓝图实现(未实现) Fresnel shader forge实现 个人理解是&#xff0c;使用观察方向和法向方向点乘&#xff0c;那就相当于我们的视…

adb-命令大全

目录 一、ADB简介 二、为什么要用ADB 三、ADB架构和原理 四、ADB日志状态 五、ADB常用命令 &#x1f381;更多干货 完整版文档下载方式&#xff1a; 一、ADB简介 ADB全称Android Debug Bridge&#xff0c;起到调试桥的作用&#xff0c;是一个客户端-服务端程序。其中客…

C++数据结构X篇_06_C++单向循环链表实现

本篇参考C单向循环链表实现整理&#xff0c;先搞懂结构框架&#xff0c;后期根据视频利用c对内容实现&#xff0c;也可以对c有更高的提升。 文章目录 1. 链表定义2. 链表插入3. 链表打印(注意打印过程是跳过头节点head的)4. 实验 单向循环链表与单向链表十分相似&#xff0c;具…

ST - NUCLEO-H723ZG ITM不生效的问题

文章目录 ST - NUCLEO-H723ZG ITM不生效的问题概述CubeMX配置点END ST - NUCLEO-H723ZG ITM不生效的问题 概述 在用NUCLEO-H723ZG官方板子做实验, 想用ITM打印一些调试信息出来. 不好使啊. 后来查问题, 发现 NUCLEO-H723ZG上的HSE, LSE的晶振无效, 等于是不能用外部的HSE, LS…