ボイスチェンジャー作成(1)

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