代码编织梦想

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的……
24.5.15添加了方便测试的UI
在这里插入图片描述

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AWNUXCVBN/article/details/138859179

讯飞离线语音合成接入_k_hello的博客-爱代码爱编程_离线语音sdk

讯飞离线语音合成接入: 文字转语音的方法 1.Google TextToSpeech + 中文语音引擎 Google提供了原生的方法TextToSpeech,但是不支持中文,sad… 不过可以用第三方的语音引擎,eg

Unity 科大讯飞离线语音合成-爱代码爱编程

好久没有更新文章了,今天我们继续更新科大讯飞的语音的文章。 之前在语音合成部分由于在线语音合成的处理时间太长,所以使用了C#自带的语音合成,处理是快了,但是合成的声音特别难听。 所以今天更新一个离先语音合成的文章。 废话不多说,直接进入正题。 1.下载语音合成SDK,需要选择离线的,否者无法使用离线的。 2.解压SDK,这里我们需要用到common.j

UNITY实战进阶-科大讯飞TTS(离线语音合成) unity播放PCM格式的wav(不依赖第三方库)-7-爱代码爱编程

准备工作 1.注册科大讯飞开发者账户 2.创建一个应用,获取APPID 3.下载离线sdk(你是什么平台的就下什么平台的) 4.开打压缩包 5.我们需要的文件         bin\msc.dll         bin\msc_x64.dll         bin\msc\res\tts目录的jet文件 6.创建Unity项目,把需要的plugin

什么是unreal engine游戏引擎?它有什么优势?-爱代码爱编程

大家好,我是咕噜土豆,很高兴又和大家见面了。在游戏开发行业中,选择合适的游戏引擎是非常重要的。其中,Unreal Engine作为一款功能强大的游戏引擎,在业界非常受欢迎。今天我带大家简单的了解一下。 什么是Unreal Engine游戏引擎 Unreal Engine(虚幻引擎)是由Epic Games开发的一款强大的游戏引擎,用于创建高品质的3D游