UE 阿里云智能语音
文档 下载 评论(3)

目录

请一定用UE5.2引擎打开本工程

NlsConfig.ini配置

测试demo

StartWorkTread:开启线程

ReleaseAlibabaCloudVoice:释放

SpeechSynthesizer:识别文字并且转为音频数据

NlsInfo:Nls配置

回调:识别后的回调函数参数

SimplePlaySoundByMemory:从内存播放二进制音频数据

SpeechTranscriber:语音合成

Start/EndRecording:录音

SpeechRecognizer:上传要识别的音频

SimplePlaySoundByFile:从本地文件读取二进制音频数据进行播放

PCMToWAVByMemory:PCM格式转为WAV格式从内存转

WAVSaveLocalDisk:存储WAV格式

SetDirectHost:私有云部署IP

SetUseSysGetAddrInfo:DNS获取IP

GetSendAudioSleepTime:获取时间

IsExpire:令牌是否超时

GenerateToken:生成令牌

SetNlsLogConfig:设置Log位置


本插件并非面向蓝图用户,如果是蓝图用户,需要安装VS,并且编译插件的dll和lib,编译成功后再移动到蓝图项目之中,必要的话可能要修改buildID。

UEC++用户无需这些烦恼.


1.请一定用UE5.2引擎打开本工程 如果发现无法打开

请修改 MyProject\Plugins\Binaries\Win64\UnrealEditor.modules 这个文件的buildID 让它的ID和您的引擎的Build一致。

2.打开当前的 MyProject\Config\NlsConfig.ini


AppKey=指定阿里云语言的APPkey
ID=您的阿里云key
Sercet=您的密钥


3.我们准备一个环境,方便大家测试demo的账户,可以手动替换当前目录下的这个NlsConfig.ini文件到项目中的Config下。注意,这个密钥的时间是从2023年7月到2024年7月后过期,仅仅为了测试。


4.如果您打包项目,一定要将插件里面的 这个路径:MyProject\Plugins\Source\ThirdParty\SimpleAlibabaCloudVoiceLibrary\NlsSdk3.X_win64\lib\14.0\x64\Release\
下的lib和dll拷贝到你的项目 MyProject\Binaries\Win64\下 蓝图项目不会自动拷贝,这个我们也头大。

教程

demo的界面

StartWorkTread:需要开启线程,如果不开启会产生奔溃,至少一个线程。

ReleaseAlibabaCloudVoice:结束后别忘记释放

SpeechSynthesizer:识别文字并且转为音频数据

CallbackDelegate:识别完成后会调用该代理。

Content:需要输入的内容,比如“你好” 发送到阿里云服务器 它会将你好合成语音。

AudioFile:可以将音频数据保存到指定的目录下。

ConfigInfo:配置信息。


NlsInfo:阿里云智能语音配置清单。

Nls配置

EncodingFormat:输出的编码格式,设置音频数据编码格式。可选参数,目前支持PCM/OPUS,默认为PCM。

SampleRate:采样率,设置音频数据采样率。可选参数,目前支持16000/8000。默认为16000。

IntermediateResult:设置是否返回中间识别结果。可选参数,默认false。

PunctuationPrediction:设置是否在后处理中添加标点。可选参数,默认false。

InverseTextNormalization:设置是否在后处理中执行ITN。可选参数,默认false。

MaxSentenceSilence:语音断句检测阈值,一句话之后静音长度超过该值,即本句结束,合法参数范围200ms~2000ms,默认值800ms。

EnableVoiceDetection:启用语音检测

MaxStartSilence:最大开始语句

MaxEndSilence:最大结束语句

CustomizationId:定制语言模型id,可选。

VocabularyId:定制泛热词id,可选。

PayloadParam:用于传递某些定制化、高级参数设置,参数格式为JSON格式:{ “key”: “value” }。

OutputFormat:UTF-8 or GBK 输出格式 如果不想出现乱码 就utf8

AutomaticallyPlaySound:是否自动播放下载的数据

Teller:讲述人设置

VolumeValue:音量, 范围是0~100, 可选参数, 默认50

SpeechRate:语速, 范围是-500~500, 可选参数, 默认是0

PitchRate:语调, 范围是-500~500, 可选参数, 默认是0

EnableSubtitle:开启字幕

QueuePlay:是否队列播放使用,需要AutomaticallyPlaySound=true才有效。如果同时获取多个音频,按照给定的顺序播放,其他的音频会存起来等待播放。


回调:

StatusCode:HTTP状态码,200为正常。

Msg:如果出错,这里面会有值

MsgType:是语音合成还是语音识别各种阶段的类型

TaskId:当前的任务ID,

Result:如果是语音识别,这里面就是具体的识别内容

DisplayText:显示的Text

SpokenText:Text

SentenceTimeOutStatus:语句的超时状态,这个按照阿里云那边的状态

SentenceIndex:语句的Index

SentenceTime:花费的时间

SentenceBeginTime:开始的时间

SentenceConfidence

Data:服务器获取的二进制数据,可以是音频,也可以是其他。


SimplePlaySoundByMemory:从二进制数据播放声音


SpeechTranscriber:语音合成,可以直接捕捉麦克风的声音并且上传到服务器进行合成

Start/EndRecording:单纯的录音功能,将录音数据保存的本地


SpeechRecognizer:读取本地的音频文件 上传阿里云识别。


SimplePlaySoundByFile:从本地文件读取二进制音频数据进行播放


PCMToWAVByMemory:PCM格式转为WAV格式,需要输入对应的通道和采样率。

WAVSaveLocalDisk:将WAV格式保存到磁盘。


SetDirectHost:私有云部署的情况下可进行直连IP的设置【必须在StartWorkThread()前调用】


SetUseSysGetAddrInfo:存在部分设备在设置了dns后仍然无法通过SDK的dns获取可用的IP,可调用此接口主动启用系统的getaddrinfo来解决这个问题.


GetSendAudioSleepTime

@brief 获取sendAudio发送延时时间。
@param dataSize 待发送数据大小。
@param sampleRate 采样率:16k/8K。
@param compressRate 数据压缩率,例如压缩比为10:1的16k OPUS编码,此时为10,非压缩数据则为1。
@return 返回sendAudio之后需要sleep的时间。
@note 对于8k pcm 编码数据, 16位采样,建议每发送1600字节 sleep 100 ms.
对于16k pcm 编码数据, 16位采样,建议每发送3200字节 sleep 100 ms.
对于其它编码格式(OPUS)的数据, 由于传递给SDK的仍然是PCM编码数据,
按照SDK OPUS/OPU 数据长度限制, 需要每次发送640字节 sleep 20ms.


IsExpire:令牌是否会过期,令牌的生成在内部是自动的。


GenerateToken:手动生成令牌


SetNlsLogConfig:设置Nls日志 一般可以不用设置,系统会默认设置。


维护日志

2023年6月26日:优化了蓝图调用参数,去除是否开启全局配置。更新的案例demo.

2023年7月3日:语音识别打包后的奔溃问题,新增语音识别通过独立程序,增加独立程序

2023年7月13日:增加免费蓝图5.10版本,隐藏窗口调用。

2023年7月15日:增加了异步声音方法.

2023年7月17日:解决了配置声音大小和语调,音调没有反应的问题。

2023年8月17日:移除开启线程功能,打包后不会影响其他HTTP功能的bug(这个bug解决了一星期)

《“UE 阿里云智能语音”》 有 3 条评论

  1. […] 接下来我们介绍一些语音合成和语音识别,这块内容是属于ChatGPT的,需要魔法,对于国内非常不方便,建议用阿里云智能语音来解决这类问题. […]

  2. GRP说道:

    你好,阿里云的插件不太稳定,请问会维护更新吗

发表回复

一.商业版本和学习版本的对比

二.您还未登陆哦

三.该资源出自以下课程

四.社区版本