実現したいこと
Go言語で音声ファイルを読み込んでサンプルレートを48000から8000に変更してchunkで送信したい。
前提
Go言語で音声ファイルを読み込んでその音声をchunkで送信したいのですが、その際にchunkごとにサンプルレートを変更して送信しています。
そうすると、時々ノイズが入ったり音声が二重に聞こえたりします。
Go
1import "github.com/zaf/resample"2 3var buf bytes.Buffer 4res, err := resample.New(&buf, float64(48000), float64(8000), 1, resample.I16, resample.HighQ)
上記のchunkごとにサンプルレートを変更せずに読み込んだデータのサンプルレートを一気に変更して送信すると問題なく聞き取れます。
おそらくchunkごとにサンプルレートを変更する際に最後の方のデータが抜け落ちて、次に来る音声とうまく噛み合わないのかもしれません。この場合だとサンプルレートを48000から8000に変更する際にどのようにchunkを区切るのが良いのでしょうか?
もしくは他に原因があるのでしょうか?
https://github.com/zaf/resample
サンプルレートの変更には上記のライブラリを使っていますが、他にGo言語でサンプルレートを変更する良い方法があれば教えてくださると幸いです。
0 コメント