VTuber をやってみようと思って既存のボイスチェンジャーを調べてみた。
そしたら自分でも作ってみたくなったので、作ってみる。
まずは、マイクの音を wav ファイルに出力するプログラムを作ろうと思う。
開発言語は .NET の C# で、マイクは手持ちの UAB-80 を使う。
NAudio を使うことにしたので nuget でインストールする。
NAudio のページに録音のサンプルがあったのでそれを元に Console アプリを作る。
https://github.com/naudio/NAudio/blob/master/Docs/RecordWavFileWinFormsWaveIn.md
で、こんなソースコードでマイクからの入力を wav ファイルとして録音できた。NAudio すごい便利。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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 ファイルのデータを可視化して、他の人の声と比べてみようと思う。