Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

音声の出力をmp3で行えるようにしてほしい。 #440

Open
testused opened this issue Jul 30, 2022 · 11 comments
Open

音声の出力をmp3で行えるようにしてほしい。 #440

testused opened this issue Jul 30, 2022 · 11 comments
Labels
初心者歓迎タスク 初心者にも優しい簡単めなタスク 機能向上 状態:設計 設計をおこなっている状態 要議論 実行する前に議論が必要そうなもの

Comments

@testused
Copy link

内容

MP3形式での出力ができるようになってほしい。
VOICEVOXはそもそも中音質なので、非圧縮のWAV形式で出力するより、
ほぼ音質が変わらずサイズをかなり抑えることができるMP3で出力できると
いいと思いました。

Pros 良くなる点

動画編集に必要な素材の容量を音声部分はかなり抑えることができる。

Cons 悪くなる点

特にないと思われる。

その他

はじめてissueを立てたので、間違っている場合は遠慮なく訂正していただけると助かります。

@Hiroshiba
Copy link
Member

Hiroshiba commented Aug 1, 2022

issue作成ありがとうございます!
たしかに、mp3のみならず、拡張子を指定可能にできると便利かもと思いました。

パッと思いつく方法はffmpegですが、容量がどうなるのか気になりました。
容量が増えすぎる場合は導入を見送りたいです。

そして今ぱっと配布パッケージを見てみたのですが、ffmpeg.dllというのがありました。
もしかしたら今使っているライブラリのうち誰かがffmpeg使ってるのかも・・・?

@sabonerune
Copy link
Contributor

軽く調べたところffmpeg.dllを使っているのはElectron(エディタ側)みたいです。

@Hiroshiba
Copy link
Member

へーー!!なるほどです。
流石にエンジンから利用しづらそうですね…。

実現する場合は、普通にffmpegを同梱してpythonから実行する形が自然かなと感じました!
mp3対応の要望はちょくちょく見かけるので、興味はあります。

@sabonerune
Copy link
Contributor

もう少し調べていたらSoundFileがv0.11.0でmp3がサポートされるようになっていました。
バージョンアップできれば簡単にエンジン側でできそうですね。

@Hiroshiba
Copy link
Member

おっと!!完璧ですね!!!
あと可能ならflac形式もサポートできればと思ってたのですが、README読んだ感じflacはもとからsoundfileで実現できそうですね・・・!
https://python-soundfile.readthedocs.io/en/0.11.0/

@tarepan
Copy link
Contributor

tarepan commented Mar 1, 2024

「出力形式指定は現状で技術的に可能」との結論を得たと認識しました。

実際に実装する場合、API 引数に extension のような値を追加することになり、API 変更を伴います。
API が関わる機能追加であるため、一度追加した場合は長期的にサポートし続けることになります。
一方で「拡張子変更はユーザー側で容易にできるのだから、ENGINE はスリムたるべし」という思想(UNIX的)もありそうです。

@Hiroshiba
拡張子変更機能は実装方向でしょうか、あるいはNoGoでスリムという方向性でしょうか?

@Hiroshiba
Copy link
Member

Hiroshiba commented Mar 3, 2024

サーバー用途で使われたりしているのもあり、需要はあると考えます。
必須ではないかもしれませんが、あっても良いかなくらいの感覚です。must/should/want/canのwantくらいでしょうか。

品質がどれくらい変化するか、それに伴って容量がどれくらい減るかも焦点かもです。
明らかに劣化したり、容量がさほど変わらなければ諦めるべきかなとも思います。

なかなか0 1で判断しづらいですね…。
容量や品質がいい感じであればGoって感じかなぁと…。

@tarepan
Copy link
Contributor

tarepan commented Mar 4, 2024

容量や品質がいい感じであればGo

👍

現状共有 for Future

現在、本 issue は「技術的に可能であり、その意義(容量・品質への影響度合い)を定量・定性評価して見極める」段階にあります。
コンパクトな音声ファイル出力に興味ある方からのコントリビュートをお待ちしています!

@tarepan tarepan added 初心者歓迎タスク 初心者にも優しい簡単めなタスク 要議論 実行する前に議論が必要そうなもの 検証者募集 and removed 要議論 実行する前に議論が必要そうなもの 優先度:低 (運用中止) labels Mar 4, 2024
@tarepan tarepan added 状態:必要性議論 必要性を議論している状態 要議論 実行する前に議論が必要そうなもの and removed 検証者募集 labels Apr 2, 2024
Copy link

本 Issue は直近 30 日間で活動がありません。今後の方針について VOICEVOX チームによる再検討がおこなわれる予定です。

@Hiroshiba
Copy link
Member

Hiroshiba commented May 18, 2024

検証者を募集している状態という認識です!
が、いろいろ調べているうちに検証はいらないかもと思いました。

mp3はLAMEの320kbps固定ビットレート(CBR)か約240kbps可変ビットレート(VBR)で良さそうに思います。
が、そもそもどうやってLAMEを使えるようにしようかという課題があり、そこそこ根気がいりそうです。
ちなみにsoundfileでもMP3が扱えますが、このフォーマットがどうなっているのかは未調査です。

このコメントでちょこっと言及してるflac形式であれば、VOICEVOXが現在使っているsoundfileに機能があるのでまだ近いです。
flacのPCM 24bitであれば少なくとも音質的な問題はないかなと思います。
(soundfileが対応している音声フォーマットはsoundfile.available_formats()soundfile.available_subtypes()で調べられることがわかりました。)

あと音声フォーマットの指定方法ですが、AudioQueryFrameAudioQueryoutputFormatキーを設けてそこで指定可能にするのが手っ取り早いと思います。
既存のoutputSamplingRateなどと並ぶ感じになるかなと。

・・・という辺りをいろいろまとめてあげて、別issueにして実装を募集するのが良さそうに思いました!
「音声フォーマットを指定可能にする」みたいなissueにしてゴールをFLACかMP3を実装する形とし、完了後に残った一方をまたissueにするのが良さそうかなと!

@tarepan tarepan added 状態:設計 設計をおこなっている状態 and removed 状態:必要性議論 必要性を議論している状態 非アクティブ labels May 18, 2024
@testused
Copy link
Author

久々にissue見に来ました。wav出力以外を求める声は少数派だったみたいですね。
個人的には、一般的なmp4コンテナがH.264/aacの非可逆圧縮の音声コーデックなので、動画投稿者的にはwavである必要はないかなぁと思ったissueだったと思います。(かなり暴論ですが320kbps以上のaacとmp3はそこまで認知できる違いがないかなと。)
個人的には、作成した動画のPFと使用素材(音声含む)は長期保管するので、サイズを抑えれたほうがいいと思ったのが発端だったと思います。(確か手元で128kbpsのmp3に変換したら10分の1くらいになった気がします。320kbpsは調べていません。)
issueがcloseしておらず検討していただいたようでありがとうございます。別issue立てしていただいて構いません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
初心者歓迎タスク 初心者にも優しい簡単めなタスク 機能向上 状態:設計 設計をおこなっている状態 要議論 実行する前に議論が必要そうなもの
Projects
None yet
Development

No branches or pull requests

4 participants