VTuber をやってみようと思って既存のボイスチェンジャーを調べてみた。
そしたら自分でも作ってみたくなったので、作ってみる。
まずは、マイクの音を wav ファイルに出力するプログラムを作ろうと思う。
開発言語は .NET の C# で、マイクは手持ちの UAB-80 を使う。
NAudio を使うことにしたので nuget でインストールする。
NAudio のページに録音のサンプルがあったのでそれを元に Console アプリを作る。
https://github.com/naudio/NAudio/blob/master/Docs/RecordWavFileWinFormsWaveIn.md
で、こんなソースコードでマイクからの入力を wav ファイルとして録音できた。NAudio すごい便利。
class Program
{
static void Main(string[] args)
{
var waveIn = new WaveInEvent();
var writer = new WaveFileWriter("output.wav", waveIn.WaveFormat);
waveIn.DataAvailable += (s, a) =>
{
writer.Write(a.Buffer, 0, a.BytesRecorded);
if (writer.Position > waveIn.WaveFormat.AverageBytesPerSecond * 30)
{
waveIn.StopRecording();
}
};
waveIn.RecordingStopped += (s, a) =>
{
writer.Dispose();
waveIn.Dispose();
};
Console.WriteLine("Start");
waveIn.StartRecording();
System.Threading.Thread.Sleep(5000);
waveIn.StopRecording();
Console.WriteLine("Stop");
}
}
次は、録音した Wave ファイルのデータを可視化して、他の人の声と比べてみようと思う。