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 ファイルのデータを可視化して、他の人の声と比べてみようと思う。