Unity使用sherpa-onnx实现离线语音合成

news2025/2/23 22:06:22

sherpa-onnx https://github.com/k2-fsa/sherpa-onnx
相关dll和lib库拷进Unity,官方示例代码稍作修改
在这里插入图片描述

using SherpaOnnx;
using System;
using System.IO;
using System.Runtime.InteropServices;
using UnityEngine;

public class TTS : MonoBehaviour
{
    public string Model = "vits-zh-aishell3/vits-aishell3.onnx";
    public string Lexicon = "vits-zh-aishell3/lexicon.txt";
    public string Tokens = "vits-zh-aishell3/tokens.txt";
    public string DataDir = "";
    public string DictDir = "";
    public string RuleFsts = "vits-zh-aishell3/rule.far";
    public int SpeakerId = 99;

    // Start is called before the first frame update
    void Start()
    {
        try
        {
            OfflineTtsConfig config = new OfflineTtsConfig();
            config.Model.Vits.Model = Path.Combine(Application.streamingAssetsPath, Model);
            config.Model.Vits.Lexicon = Path.Combine(Application.streamingAssetsPath, Lexicon);
            config.Model.Vits.Tokens = Path.Combine(Application.streamingAssetsPath, Tokens);
            //config.Model.Vits.DataDir = Path.Combine(Application.streamingAssetsPath, DataDir);
            //config.Model.Vits.DictDir = Path.Combine(Application.streamingAssetsPath, DictDir);
            config.Model.Vits.NoiseScale = 0.667f;
            config.Model.Vits.NoiseScaleW = 0.8f;
            config.Model.Vits.LengthScale = 1f;
            config.Model.NumThreads = 1;
            config.Model.Debug = 0;
            config.Model.Provider = "cpu";
            config.RuleFsts = Application.streamingAssetsPath + "/vits-zh-aishell3/phone.fst" + ","
        + Application.streamingAssetsPath + "/vits-zh-aishell3/date.fst" + ","
        + Application.streamingAssetsPath + "/vits-zh-aishell3/number.fst";
            config.MaxNumSentences = 1;
            OfflineTts tts = new OfflineTts(config);
            OfflineTtsCallback callback = new OfflineTtsCallback(MyCallback);
            OfflineTtsGeneratedAudio audio = tts.GenerateWithCallback("这是一个语音合成测试", 1, SpeakerId, callback);
            bool ok = audio.SaveToWaveFile(Application.streamingAssetsPath + "/test.wav");
            if (ok)
            {
                Debug.Log("succeeded!");
            }
            else
            {
                Debug.Log("Failed");
            }
        }
        catch (Exception e)
        {
            Debug.LogError(e);
        }
    }

    void MyCallback(IntPtr samples, int n)
    {
        float[] data = new float[n];

        Marshal.Copy(samples, data, 0, n);

        //Debug.Log("n:" + n);
    }

    // Update is called once per frame
    void Update()
    {

    }
}

在这里插入图片描述
在这里插入图片描述
不知为何生成的音频是8000HZ的……
最后,案发现场在https://gitee.com/awnuxcvbn/usherpa-onnx-tts.git

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

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

相关文章

基于java 自定义注解Annotation设计简单ORM框架——进阶篇

目录 引言实例新建两个注解标注实体类拼接sql语句 总结 引言 一般Java规范编程(只是一种习惯,而不是强制)中,变量的命名方式一般采用驼峰式命名。比如userName,userImage。但是在数据库中一般不会采用驼峰式&#xff…

工业物联网解决方案:机房动环监控系统

工业物联网解决方案:机房动环监控系统 工业物联网(IIoT)作为数字化转型的关键驱动力,正深刻改变着各行各业的运作模式,其中机房动环监控系统是实现智能化运维管理的重要组成部分。该系统通过集成传感器技术、大数据分…

位图(c++)

文章目录 1.位图概念2.位图的实现3.应用(解决整形存在或次数问题)3.1存在问题3.2次数问题 5.搜索的方法对比: 1.位图概念 和哈希一样,都是一个表来记录某个元素的个数或者存在与否;不同的是哈希使用的计算机定义的完整…

跨境必看|TikTok账号运营的八大秘籍

国内的传统生意都是可以在抖音上做,那么也可以在TikTok 上重新做一遍。那该如何才能把握住这片巨大的蓝海,TikTok 账号的运营就成为了主要的关键了,对于TikTok账号运营的八大秘籍,大家一起看看是如何做的? 一、固定节…

部署管理征信链码

一 . 链码准备 需要删除上面后面标记的文件,之后拖入 二. 打包链码 注意需要先启动链 打包测试链码 export FABRIC_CFG_PATH${PWD}/config peer lifecycle chaincode package ./chaincode/chaincode_basic.tar.gz --path ./chaincode/credit_chaincode --lang n…

VMware虚拟机安装详细教程

VMware下载安装好后,下载好我们要安装的操作系统的镜像文件后,此处安装的为centos7版本,就可以开始安装了。 1点击下一步 image 2、勾选【我接受条件款协议中的条款】,然后点击【下一步】。 image 3、取消勾选,然后点…

【瑞萨RA6M3】1. 基于 vscode 搭建开发环境(后续)

编译 mkdir build cd build cmake .. -G"Unix Makefiles" make -j或者 cmake -Bbuild -G"Unix Makefiles" cmake --build build创建快捷指令: 删除 .vscode/tasks.json, 存储占用和生成 MAP 编译完成后,打印内存占用…

大数据可视化实验(五):Tableau数据可视化

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1)打开数据源... 1 2)进入工作簿... 2 3)字段设置... 2 4)数据筛选... 3 5)绘制条形图... 3 四、思考问题... 4 五、总结与心得体会... 4 一、…

04-单片机商业项目编程,从零搭建低功耗系统设计

一、本文内容 上一节《03-单片机商业项目编程,从零搭建低功耗系统设计-CSDN博客》我们确定了设计思路,并如何更有效的保持低功耗,这节我们就准备来做软件框架设计。在AI飞速发展的时代,我们也会利AI来辅助我们完成,让自…

【Image captioning】In Defense of Grid Features for Visual Question Answering实现流程

In Defense of Grid Features for Visual Question Answering实现流程 网格特征预训练代码 这是该论文的特征预训练代码发布: @InProceedings{jiang2020defense,title={In Defense of Grid Features for Visual Question Answering},author={Jiang, Huaizu and Misra, Ishan…

机器学习实战宝典:用scikit-learn打造智能应用

书接上文——《数据探险家的终极指南:用Python挖掘机器学习的奥秘》 前文我们在这段精彩的机器学习探险之旅中,从基础概念出发,深入探索了使用Python和scikit-learn库进行数据分析和模型构建的全过程。 我们首先了解了机器学习的基本原理&am…

通义千问 1.5 -7B fine-tune验证

尝试对对中文数据进行finetune验证,测试模型的可优化方向。下面是代码的详细情况 代码实现 from datasets import load_dataset from transformers import (AutoModelForCausalLM,AutoTokenizer,BitsAndBytesConfig,HfArgumentParser,AutoTokenizer,TrainingArgum…

hadoop学习---基于Hive的数据仓库相关函数机制及其优化方案

Hive相关函数&#xff08;部分&#xff09;&#xff1a; if函数: 作用: 用于进行逻辑判断操作 语法: if(条件, true返回信息,false返回信息) 注意: if函数支持嵌套使用 select if(aa,’bbbb’,111) fromlxw_dual; bbbb select if(1<2,100,200) fromlxw_dual; 200nvl函数:…

【Python】理解WOE(Weight of Evidence)和IV(Information Value)

忠孝东路走九遍 脚底下踏著曾经你我的点点 我从日走到夜 心从灰跳到黑 我多想跳上车子离开伤心的台北 忠孝东路走九遍 穿过陌生人潮搜寻你的脸 有人走的匆忙 有人爱的甜美 谁会在意擦肩而过的心碎 &#x1f3b5; 动力火车《忠孝东路走九遍》 在信用评分和…

教育型内容的制胜秘诀:Kompas.ai如何结合知识与营销

在数字化营销的浪潮中&#xff0c;教育型内容已经成为品牌建立权威性和提供价值的重要手段。通过分享专业知识和见解&#xff0c;品牌不仅能够吸引目标受众&#xff0c;还能够在潜在客户心中建立起专业和可信赖的形象。本文将深入分析教育型内容的重要性&#xff0c;详细介绍Ko…

VALSE 2024合合信息 | 文档解析与向量化技术加速多模态大模型训练与应用

第十四届视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;近期在重庆悦来国际会议中心圆满举行&#xff0c;由中国人工智能学会&#xff08;CAAI&#xff09;、中国图象图形学会&#xff08;CSIG&#xff09;、中国民族贸易促进会主办&#xff0c;重庆邮电大学承办…

数据库系统概论(个人笔记)(第二部分)

数据库系统概论&#xff08;个人笔记&#xff09; 文章目录 数据库系统概论&#xff08;个人笔记&#xff09;2、关系模型简介2.1 关系数据库的结构2.2 数据库模式2.3 键2.4 模式图2.5 关系查询语言2.6 关系代数 2、关系模型简介 2.1 关系数据库的结构 Structure of Relational…

【目标检测】YOLOv5|YOLOv8模型QT界面可视化部署

YOLO-Deploy-QT_Interface 最近笔者做了YOLO系列算法的部署工作,现做一个总结。主要工作是做了用于部署YOLOv5和YOLOv8的可视化QT界面,可实现图片、文件夹、视频、摄像头的ONNX与OpenVino部署,具体效果如下: 代码链接:https://github.com/Zency-Sun/YOLO-Deploy-QT_Inte…

开源之夏又有新项目发布!快来认领!¥12,000 奖金等你来!

又有新项目加入开源之夏啦&#xff01;KubeBlocks 的亲兄弟 WeScale 也加入开源之夏啦&#xff01;一起来了解下 WeScale 社区及它带来的项目吧&#xff01; WeScale 是什么&#xff1f; WeScale 社区源自对更好的数据库访问体验的追求。在现代应用程序开发中&#xff0c;数据…

一文扫盲(13):电商管理系统的功能模块和设计要点

电商管理系统是一种用于管理和运营电子商务平台的软件系统。它提供了一系列功能模块&#xff0c;帮助企业进行商品管理、订单管理、会员管理、营销推广、数据分析等工作。本文将从以下四个方面介绍电商管理系统。 一、什么是电商管理系统 电商管理系统是一种集成了各种功能模块…