虚幻引擎 | (类恐鬼症)玩家和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-共创智能新体验新手入门
新手快速入门 注册指南 个人用户 直接注册即可。 企业团队 主账号:注册时填写的姓名与手机号将成为企业账号的管理员。子账号:在用户中心创建,数量不限。 主账号与子账号权益 相同权益:子账号享有与主账号相同的使用权益和速…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...

