サンプルレートを変えた際にノイズが入る

実現したいこと

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 コメント