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

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 updatevoid 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 framevoid Update(){}
}

在这里插入图片描述
在这里插入图片描述
不知为何生成的音频是8000HZ的……
24.5.15添加了方便测试的UI
在这里插入图片描述

最后,案发现场在https://gitee.com/awnuxcvbn/usherpa-onnx-tts.git

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

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

相关文章

【Stylus详解与引入】

文章目录 Stylus详解与引入一、Stylus简介二、Stylus的特性1. 变量2. 嵌套规则3. 混合(Mixins)4. 函数5. 条件语句和循环 三、Stylus的引入与配置1. 安装Stylus和stylus-loader2. 配置Webpack3. 在Vue项目中使用Stylus4. 编译Stylus代码四、Stylus的性能…

基于51单片机的二氧化碳检测及调节系统仿真

基于51单片机的二氧化碳检测及调节系统 (仿真+程序) 功能介绍 具体功能: 1.二氧化碳传感器测得二氧化碳数据后经过单片机处理。 2.LCD1602实时显示,第一行显示测得的浓度值,第二行显示报警阈值。 3.测…

空间复杂度与链表刷题

"一切的一切都是你自己在感应." 本文索引 空间复杂度复杂度实例实例1实例2实例3 链表题目1. 返回倒数第K个节点2. 链表的回文结构3. 相交链表4. 随机链表的复制5. 环形链表 总结: 前言: 本文主要探究空间复杂度与链表题目讲解 更多文章点击主页: 酷酷学!!! 如果此文对…

探索白啤:清爽与纯净的完善呈现

啤酒的世界色彩斑斓,各种风格迥异的啤酒满足着人们不同的口味需求。而在众多啤酒中,白啤以其与众不同的清爽与纯净口感,成为了许多人的心头好。Fendi club白啤作为精酿啤酒的代表,更是将这种口感发挥到了超卓。 Fendi club白啤的酿…

撤销及变更:31个自然基金项目!

本周投稿推荐 SSCI • 2区社科类,3.0-4.0(社科均可) EI • 计算机工程类(接收广,录用极快) SCI&EI • 4区生物医学类,1.5-2.0(录用率99%) • 1区工程类&#…

命名规范总结Java

小驼峰命名 主要用于变量和方法的命名,当标识符是一个单词时首字母小写,当标识符为多个单词时第一个单词首字母小写,其他单词首字母大写 大驼峰命名 主要用于类(Class)名等。标识符各个单词首字母大写。 全部大写命名 常量名 全部小写命…

凡尔码安全巡检卡替代传统纸质记录卡

建筑行业、物业管理、医院等行业的安全巡检的记录方式通常以:1、纸质记录:巡检人员使用纸质巡检表格,手动填写巡检时间、巡检区域、巡检发现的问题以及处理情况。这种方式简单直接,但可能存在信息记录不完整、易丢失等问题。 2、电…

uniapp音乐播放整理

一、前置知识点 1.1 音频组件控制-uni.createInnerAudioContext() 创建并返回内部 audio 上下文 innerAudioContext 对象。 主要用于当前音乐播放; 1.1.1 innerAudioContext属性 属性类型说明只读平台差异说明srcString音频的数据链接,用于直接播放…

聚观早报 | 乐道L60实车曝光;《萤火突击》公测定档

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 5月11日消息 乐道L60实车曝光 《萤火突击》公测定档 华为官网更新管理层信息 OPPO Reno12 Pro细节曝光 三星电子…

瀚高数据库(HighGoDB)Windows安装使用

1.下载 2.安装 瀚高数据库下载与安装(Windows版)-CSDN博客 3.连接工具 4.建库、建表操作 瀚高数据库管理工具-CSDN博客 *报错Cant access non-default database,需要右键数据库-设为活动对象 5.导入外部数据(迁移、对比&…

Stable Diffusion写真完整教程

前言 最近自己对AI非常痴迷,并且今后也会一直在这个领域深耕,所以就想着先入门,因此花时间研究了一番,还好,出了点小成果,接下来给大家汇报一下。 AI绘画 提到AI绘画,大家可能立马会想到made…

住宅IP代理和数据中心/机房IP代理之间的区别

一、什么是数据中心/机房IP代理? 数据中心/机房IP代理是使用数据中心拥有并进行分配和管理的IP的代理,俗称机房IP代理。 二、数据中心/机房IP代理的特点 与住宅代理通过使用ISP拥有和分配的IP地址的设备路由请求的情况不同,数据中心代理利…

品鉴中的挑战与探索:如何勇敢尝试不同类型的云仓酒庄雷盛红酒

品鉴云仓酒庄雷盛红酒不仅是一种感官的享受,更是一种挑战与探索的过程。不同类型的云仓酒庄雷盛红酒具有各自与众不同的风味和特点,通过勇敢尝试不同类型的红酒,我们可以拓展自己的品鉴视野,发现更多未知的美妙滋味。 首先&#x…

postgresql中写python去读取HDFS数据,像表一样使用。

简介 首先postgresql是支持python的,在安装postgresql数据库的时候需要执行python支持。可以使用python进行写fundcation 自然也就可以自定义funcation去读取HDFS文件,以此替换掉hive的,省去中间频繁切换服务器的麻烦。 安装postgresql use…

SpringBoot+Vue实现图片滑块和文字点击验证码

一、背景 1.1 概述 传统字符型验证码展示-填写字符-比对答案的流程,目前已可被机器暴力破解,应用程序容易被自动化脚本和机器人攻击。 摒弃传统字符型验证码,采用行为验证码采用嵌入式集成方式,接入方便,安全&#…

【Android】Kotlin学习之Kotlin方法的声明和传参

方法声明 普通类的方法 静态类的方法 不需要构建实例对象, 可以通过类名直接访问静态方法 : NumUtil.double(1) companion object 伴生类的方法 使用companion object 在普通类里定义静态方法 参数 括号内传入方法 : 当参数是方法时, 并且是最后一个参数 , 可以使用括号外…

有什么实用的还原试卷的app免费?6个软件教你快速进行还原试卷

有什么实用的还原试卷的app免费?6个软件教你快速进行还原试卷 在现代化的教学环境中,使用数字化工具进行试卷还原变得愈发重要。以下是六个实用的、免费的应用程序,它们为还原试卷提供了便捷的解决方案。 FunAI: 这款应用程序可…

【JVM】ASM开发

认识ASM ASM是一个Java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。 ASM可以直接产生二进制class文件,也可以在类被加载入虚拟机之前动态改变类行为,ASM从类文件中读入信息后能够改变类行为,分析类信息&#xff…

中仕公考:怎么看岗位是否有编制?

1、看公告标题 有编:公告标题中含有编内、xx地区事业单位招聘、xx教育系统招聘……等关键词,这样的公告是有编制的。 无编:公告标题含有编外、非在编、临聘、劳务派遣、政府购买岗位……等关键词,说明是没有编制的 2、看公告引导…

算法基础01一快速排序,归并排序,二分

一.排序 1.快速 排序 基于分治 确定分界点 左 右 中间 随机划分区间 左半边<x >x在右半边递归处理左右两端 #include<iostream>using namespace std;const int N 1e6 10;int n; int q[N]; void quick_sort(int q[],int l,int r) {if(l>r)return;//边界&…