虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(中)
虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天-CSDN博客
上篇偏重实现步骤,中篇偏重理解校准和降低延迟,下篇加入上下文背景array和设置口音
TTS通用参数
———————————————————————————————————————————
以下整理了Text to Speech的一些(通用)参数。重要性自上而下排序
Model size
基于OpenAI's Whisper models开源模型
用的模型越大,计算机实时计算的时间就越久。需要快速反应可以尝试最上面的Tiny Size。往下选择更大的模型,会有更高的准确性和自然度。它们拥有更多的参数和更复杂的网络结构,能够捕捉更多的语言细节和语音特征,从而生成更自然、更流畅的语音。(注意,每次切换project setting中的model size需要点上面的setup language model或者重启编辑器才能应用)

点击“设置语言模型”按钮,如果您的本地机器上尚未安装所选语言模型,它将要求您自动下载该模型。
下载完成后,编辑器将生成一个位于“Plugins/RuntimeSpeechRecognizer/Content/LanguageModels/LanguageModel.uasset”的语言模型资产。此语言模型资产将是唯一与您的项目一起打包的资产。
通过点击“清除语言模型”按钮删除任何本地下载的语言模型。
从open ai's whisper 模型的大小来看,纯英文的 TTS 模型(比如 ggml-tiny.en.bin 和 ggml-medium.en.bin)和多语言模型(ggml-tiny.bin 和 ggml-medium.bin)在文件大小上没有太大差异。这可能让人感到意外,因为多语言模型通常需要包含更多更复杂的语言数据,理应体积更大,但其架构可能已经做了优化,能在模型大小上保持接近单语言模型的水平。

如果有不能识别的语言,可以在Epic目录下的插件文件夹中加入自定义语音包
Alternatively, you can manually download and place language models from https://huggingface.co/ggerganov/whisper.cpp into the "Plugins/RuntimeSpeechRecognizer/Content" folder.

streaming && non-streaming
Streaming audio input
This example captures audio data from the microphone as a stream using the Capturable sound wave and passes it to the speech recognizer.流式音频输入,使用可捕获声波从麦克风捕获音频数据作为流,并将其传递给语音识别器。
Non-streaming audio input
imports audio data to the Imported sound wave and recognizes the full audio data once it has been imported.非流式音频输入将音频数据导入到导入的声波中,并在导入后识别完整的音频数据。
Temperature
“temperature” 是控制生成结果随机性的一种参数。当 temperature 值较低时,系统会倾向于生成较为确定和可预测的输出,而当 temperature 值较高时,系统会生成更多样化、更随机的输出。
这句话的意思是: 当解码过程未能满足某些阈值时,系统会通过增加 temperature 值来增加输出的随机性。也就是说,如果解码遇到困难,生成的结果不够理想,系统会增加 temperature 来尝试生成更灵活、更随机的内容。
Initial Prompt
Sets the initial prompt for the first window. This can be used to provide context for the recognition to make it more likely to predict the words correctly, e.g. custom vocabularies or proper nouns.
设置第一个窗口的初始提示。这可用于为识别提供上下文,使其更有可能正确预测单词,例如自定义词汇或专有名词。
在文字生成语音的过程中,通常是按文本逐字逐句“照读”的,但在某些高级的语音合成系统中,特别是当涉及到自然语言生成或调整发音的细节时,可能需要一定的随机性。这种随机性通常与语调、节奏、或情感表达相关,而不只是机械地“照读”。
以下是一些可能涉及随机性的场景:
-
语调和情感:为了让合成的语音听起来更自然、更像人类,系统可能会在语调、重音、或表达情感的过程中引入一些随机变化。通过这种方式,语音听起来就不会显得死板和单一,而是更接近真人的表达。
-
停顿和节奏:不同的语境下,停顿的长度和节奏可能有所不同。系统可以通过引入一定的随机性来模拟这些变化,从而生成更自然流畅的语音。
-
句子结构或表述方式的选择(适用于生成文本再语音的系统):有些系统在生成语音时,可能要先生成要表达的文本内容,而这个过程可能涉及到不同的句子结构或词汇选择。这时的随机性就是在文本生成阶段用到的,类似于 ChatGPT 生成文本的机制。
举个例子:
- 低 temperature(如 0.2):系统会生成更稳定、预期一致的语音,几乎不会偏离最常见的发音方式,听起来像是机械地“照读”。
- 高 temperature(如 0.8 或 1.0):生成的语音会包含更多变化,例如停顿、语调起伏、语速快慢的变化,这样语音可能更像一个自然的对话者,而不是按部就班地读文本。
然而,如果 temperature 设置过高,语音可能显得过于“随意”,语调或情感表达可能不合适,甚至会导致不太符合语境的发音选择。
Beam Search (beam size default -1)

Set the number of beams in beam search. Only applicable when temperature is zero.
**束搜索(beam search)**算法的一个设置选项,特别是在生成任务(如文本生成或语音合成)中常用。我们来逐句分析这句话的意思:
1. "Set the number of beams in beam search"
- 束搜索是一种搜索算法,用来在生成文本或语音时找到多个可能的候选结果,并最终选择最优的一个。这里的“beams”(束)指的是在每一步生成过程中,保留的多个候选项。你可以将其理解为在每一阶段,算法会保留多个可能的生成路径,而不是只选择一个。
- “Set the number of beams” 意思是你可以设置要保留多少个候选项(路径)。比如,设为 3 就表示在每个生成步骤中保留 3 个候选方案,然后继续从这些方案中挑选最好的。
2. "Only applicable when temperature is zero"
- 这一部分说明束搜索算法只在 temperature 为零时生效。
- temperature 为零意味着系统不再引入随机性,而是严格选择最高概率的结果。在这种情况下,束搜索算法会非常有用,因为它可以保留多个可能的候选项进行评估,以确保找到最优解。
- 如果 temperature 不为零,意味着系统引入了随机性,束搜索的严格性和效率会大大降低,因此束搜索只在完全确定性的环境(即 temperature = 0)下才有意义。
Step Size Ms
录入语音的毫秒数 1000ms=1s。
Sets the step size in milliseconds. Determines how often to send audio data for recognition. The default value is 5000 ms (5 seconds). 这句话描述的是设置步长大小(step size),即每隔多少毫秒发送一次音频数据用于识别,默认值为 5000 毫秒(5 秒)。理论上,步长越小,意味着数据会更频繁地发送,延迟会变小,但这并不总是意味着“越小越好”,会缺失上下文影响。
如果启用了流式处理(streaming processing),那么**step size 的作用会显得不那么重要**,或者说其影响会大大减少。
※※加速库
Use Acceleration Libraries
whisper.cpp can accelerate the recognition process by using the following libraries: Core ML for Apple Silicon devices, OpenVINO on devices including x86 CPUs and Intel GPUs, Nvidia GPU Cuda on Windows or Linux, BLAS CPU support via OpenBLAS, BLAS CPU support via Intel MKL. Please note that these libraries are not included in the plugin by default and you need to install them manually, following the whisper.cpp instructions.
———————————下篇[加入上下文背景array和设置口音]——————————————
虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(下)-CSDN博客
———————上篇[使用runtime speech recognizer插件和解决插件报错]——————————
虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(上)-CSDN博客
相关文章:
虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(中)
虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天-CSDN博客 上篇偏重实现步骤,中篇偏重理解校准和降低延迟,下篇加入上下文背景array和设置口音 TTS通用参数 ————————————————————————————————————…...
整流电路的有源逆变工作状态
目录 1. 逆变的概念 2. 有源逆变的条件 3. 电流电路的概念 4. 产生逆变的条件 5. 三相桥式全控整流电路的有源逆变工作状态 6. 逆变角的概念 7. 逆变失败的原因 8. 最小逆变角的限制 整流电路的有源逆变状态是指通过控制整流器,使其将直流电源的能量反向送回…...
Android 签名、空包签名 、jarsigner、apksigner
jarsigner是JDK提供的针对jar包签名的通用工具, 位于JDK/bin/jarsigner.exe apksigner是Google官方提供的针对Android apk签名及验证的专用工具, 位于Android SDK/build-tools/SDK版本/apksigner.bat jarsigner: jarsigner签名空包执行的命令: jar…...
java基础(小技巧)
文章目录 一、日志输出二、字符串拼接三、日期比较四、常用注解五、Lombok的原理 提示:以下是本篇文章正文内容,下面案例可供参考 一、日志输出 之前使用的方式。在要使用的类里面定义日志类: private static Logger logger LoggerFactory…...
Android Studio 安装配置教程(Windows最详细版)
目录 前言 Android Studio 下载 Android Studio 安装 Android Studio 使用 一、创建默认项目(Compose) 二、创建常规项目 三、使用ViewBinding 四、查看Gradle版本、SDK版本、JDK版本 ① Gradle版本 ② SDK版本 ③ JDK版本 前言 Android开发…...
Cesium绘制可编辑线
Cesium 第一章 绘制可编辑线 Screen-2024-09-17-202059的副本 文章目录 Cesium一、绘制线二、编辑线三、使用 一、绘制线 1、方法 //场景相机控制viewer.scene.screenSpaceCameraController.enableRotate false; //cesium相机控制 绘制和编辑时 禁止转动场景// 鼠标样式修改…...
【算法】差分思想:强大的算法技巧
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
微软开源项目 Detours 详细介绍与使用实例分享
目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C++软件异常排查从入门到精通系列教程…...
Numba基础
1. Numba 基础 1.1 什么是 Numba? Numba 是一个 JIT 编译器,用于加速数值计算。它通过即时编译技术,将 Python 代码在运行时编译为机器代码,极大地提升执行速度,特别适合循环和矩阵操作等密集型计算。 2. Numba 基本…...
[JAVA]介绍怎样在Java中通过字节字符流实现文件读取与写入
一,初识File类及其常用方法 File类是java.io包下代表与平台无关的文件和目录,程序中操作文件和目录,都可以通过File类来完成。 通过这个File对象,可以进行一系列与文件相关的操作,比如判断文件是否存在,获…...
oracle停止当前运行的JOB或kill会话
在Oracle中,可以使用DBA_SCHEDULER_JOBS视图来查找当前正在运行的作业(job),并使用DBMS_SCHEDULER.STOP_JOB过程来停止它们 SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE STATE RUNNING; SELECT * FROM DBA_SCHEDULE…...
SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
介绍 在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟 一旦MO宕机,内存中的消息会丢失内存空间有限,当消费者故障或处理过慢时,会导致消息积压,引发MQ阻塞 在消息队列运行的过程中…...
CLIP论文中关键信息记录
由于clip论文过长,一直无法完整的阅读该论文,故而抽取论文中的关键信息进行记录。主要记录clip是如何实现的的(提出背景、训练数据、设计模式、训练超参数、prompt的作用),clip的能力(clip的模型版本、clip…...
sshj使用代理连接服务器
之前我是用jsch连接服务器的,但是没办法使用私钥连接,搜了一下似乎是不支持新版的SSH-rsa,并且jsch很久没更新了,java - "com.jcraft.jsch.JSchException: Auth fail" with working passwords - Stack Overflow 没办法…...
【Leetcode:1184. 公交站间的距离 + 模拟】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
VRRP 笔记
一、概念: vrrp:Virtual Router Redundancy Protocol 虚拟路由冗余协议,当网关发生故障时,进行主备切换,保证业务连续性 把多台物理机的网关虚拟成一台Virtual Router,称为 VRID VIP:虚拟IP VM…...
【洛谷】P3743 小鸟的设备 的题解
【洛谷】P3743 小鸟的设备 的题解 题目传送门 题解 水一道二分 qaq 刚开始考虑的是动态规划,但是动态规划并不能维护题目所要求的东西。所以我们将思路转向另一种求最值问题的方法:二分答案。 首先,如果一个设备在 t t t 的时间内消耗的…...
算法面经手撕系列(2)--手撕BatchNormlization
BatchNormlization BatchNormlization的编码流程: init阶段初始化 C i n C_in Cin大小的scale向量和shift向量,同时初始化相同大小的滑动均值向量和滑动标准差向量;forward时沿着非channel维度计算均值、有偏方差依据得到均值和有偏方差进…...
mysql-搭建主从复制
文章目录 1、准备主服务器2、准备从服务器3、主库配置3.1、创建MySQL主服务器配置文件: 4、从库配置5、搭建主从&测试5.1、使用命令行登录MySQL主服务器5.2、主机中查询master状态:5.3、从机中查询slave状态:5.4、主机中创建slave用户&am…...
MiniMaxi-共创智能新体验新手入门
新手快速入门 注册指南 个人用户 直接注册即可。 企业团队 主账号:注册时填写的姓名与手机号将成为企业账号的管理员。子账号:在用户中心创建,数量不限。 主账号与子账号权益 相同权益:子账号享有与主账号相同的使用权益和速…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

