一、录制语音
Unity自带Api
public RecognizeVoice()
{
string[] microPhoneName = Microphone.devices;
if(microPhoneName.Length > 0)
{
_microphone = microPhoneName[0];
}
gotsamples = 0;
}
public void StartRecognize()
{
_audioclip = Microphone.Start(_microphone, true, time, frequency);
}
首先获取设备,然后设置录制时长,是否循环(超过时长,自动覆盖之前数据,因为数据实时传递的,设置为true节省空间,时间可以设置长一点,放置有卡顿,数据丢失),frequency采样率(越大精确,但是数据量大,可能丢包之类的,unity推荐录制采样率是44100)。
public byte[] GetAudioData()
{
int audioPos = Microphone.GetPosition(_microphone);
if (gotsamples == time * frequency) //获取到数据的最后一位了
gotsamples = 0;
float[] samples = null;
if (gotsamples < audioPos) //正常循环情况
{
samples = new fl