Unity接入阿里云C#sdk中的坑
记录一下unity接入阿里云语音合成sdk遇到的坑
·
接收语音数据的回调方法中的byte[]数组不是全部是语音数据
语音数据的长度由.binaryDataSize属性决定,直接存binarData声音数据直接就乱了,
由声音的byte[]数组转换为AudioClip参考了下面的文章
(164条消息) Unity 字节数组转换成音频_字节转音频_高远-临客的博客-CSDN博客
public static AudioClip ConvertClipToBytes(List<byte> voice)
{
//clip length
float[] samples = new float[voice.Count / 2];
float rescaleFactor = 32767;
short st = 0;
float ft = 0;
byte[] v = voice.ToArray();
for (int i = 0; i < v.Length; i += 2)
{
st = BitConverter.ToInt16(v, i);
ft = st / rescaleFactor;
samples[i / 2] = ft;
}
AudioClip cp = AudioClip.Create("audioClip", samples.Length, 1, 16000, false);
cp.SetData(samples, 0);
return cp;
}
if (e.binaryDataSize > 0)
{
for (int i = 0; i < e.binaryDataSize; i++)
{
voiceQueue.Add(e.binaryData[i]);
}
}
更多推荐
所有评论(0)