개발 하다보면 마이크를 이용해서 음성을 입력하고, 오디오파일을 입력된 부분만큼 자르고 싶은 경우가 있다.
예를 들어,
recordedClip = Microphone.Start(null, false, 30, 16000);
이렇게 마이크로 30초동안 녹음을 하게 설정을 하고,
실제로 녹음은 5초정도만 되었다면, 뒤에 25초는 빈 공백으로 남게된다.
그렇게 되면, 필요없는 길이를 자르고 싶어지는데
아래 함수를 이용하면 실제 녹음된 길이 이외의 부분을 자를 수 있다.
private AudioClip TrimSilence (AudioClip clip, float endTime)
{
float[] samples = new float[clip.samples * clip.channels];
clip.GetData(samples, 0);
int endIndex = (int)(endTime * clip.frequency) * clip.channels;
int i;
for (i = endIndex - 1; i >= 0; i--)
{
if (Mathf.Abs(samples[i]) > 0.1f)
{
break;
}
}
float[] trimmedSamples = new float[i + 1];
Array.Copy(samples, trimmedSamples, i + 1);
AudioClip trimmedClip = AudioClip.Create("trimmed", trimmedSamples.Length / clip.channels, clip.channels, clip.frequency, false);
trimmedClip.SetData(trimmedSamples, 0);
return trimmedClip;
}
'생활 정보 > 기타 꿀팁' 카테고리의 다른 글
Chrome 속도 높이기 (0) | 2023.04.03 |
---|---|
Namepr 스팸메일 차단하는 방법! (0) | 2023.04.03 |
인생을 살면서 우울해질 때는 글을 써보세요. (0) | 2023.04.02 |
AI와 GPT가 계속 발전함에 따라 더욱 편리해질 것으로 예상되는 10가지! (0) | 2023.04.02 |
AI(인공지능)의 발전으로 사라지는 직업 10가지! (0) | 2023.04.02 |