Zenn
Closed7

mlx-audioを使ってみる

Chappa OishiChappa Oishi

https://github.com/Blaizzy/mlx-audio/tree/main

MLX_Audioとは(AI要約)

MLX-Audioは、AppleのMLXフレームワーク上に構築されたテキスト読み上げ(TTS)および音声間変換(STS)ライブラリで、特にApple Silicon上での効率的な音声合成を提供します。主な機能には、高速な推論、複数言語のサポート、音声のカスタマイズ、話速の調整(0.5倍から2.0倍)、3Dオーディオビジュアライゼーションを備えたインタラクティブなWebインターフェース、TTS生成のためのREST API、最適化されたパフォーマンスのための量子化サポート、そしてFinderやExplorerとの統合による出力ファイルへの直接アクセスが含まれます。

実施した環境

  • macOS15.3.2
  • Macbook Air M2
Chappa OishiChappa Oishi

環境構築

macOSでconda環境で構築します

git clone https://github.com/Blaizzy/mlx-audio.git
cd mlx-audio

conda create -n mlx-audio python=3.10 -y
conda activate mlx-audio
# パッケージのインストール
pip install mlx-audio

# WebインターフェースとAPIの依存関係のインストール
pip install -r requirements.txt
Chappa OishiChappa Oishi

使い方

音声を生成するためのクイックスタートとして、以下のコマンドを使用します。

# 基本的な使用法
mlx_audio.tts.generate --text "Hello, world"

# 出力ファイルのプレフィックスを指定
mlx_audio.tts.generate --text "Hello, world" --file_prefix hello

# 話速の調整(0.5~2.0)
mlx_audio.tts.generate --text "Hello, world" --speed 1.4
Chappa OishiChappa Oishi

使い方(日本語)

日本語を扱うためのパッケージをインストールします

pip install -q "misaki[ja]"
mlx_audio.tts.generate --text "こんにちは" --lang_code ja

サンプル

mlx_audio.tts.generate --text "読書は、私たちの想像力を豊かにし、心の世界を広げてくれる貴重な体験です。小説を読むことで、現実とは異なる世界に旅することができ、登場人物の感情や出来事を追体験することで、他者
への理解も深まります。また、知識を得る手段としての読書も非常に有効で、歴史、科学、哲学など、さまざまな分野の情報を自分のペースで吸収できます。" --lang_code j --speed 0.8
Fetching 2 files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 27869.13it/s]

Model: mlx-community/Kokoro-82M-bf16
Text: 読書は、私たちの想像力を豊かにし、心の世界を広げてくれる貴重な体験です。小説を読むことで、現実とは異なる世界に旅することができ、登場人物の感情や出来事を追体験することで、他者への理解も深まります。また、知識を得る手段としての読書も非常に有効で、歴史、科学、哲学など、さまざまな分野の情報を自分のペースで吸収できます。
Voice: None
Speed: 0.8x
Language: j
WARNING:root:Language mismatch, loading af_heart voice into Japanese pipeline.
==========
Duration:              00:00:36.549
Samples/sec:           0.0
Prompt:                459 tokens, 12.6 tokens-per-sec
Audio:                 1 samples, 0.0 samples-per-sec
Real-time factor:      1.00x
Processing time:       36.40s
Peak memory usage:     5.07GB
✅ Audio successfully generated and saving as: audio_000.wav

https://youtu.be/L0YJTnWwfAI

Chappa OishiChappa Oishi

8bitモデル

mlx_audio.tts.generate --text "読書は、私たちの想像力を豊かにし、心の世界を広げてくれる貴重な体験です。小説を読むことで、現実とは異なる世界に旅することができ、登場人物の感情や出来事を追体験することで、他者への理解も深まります。また、知識を得る手段としての読書も非常に有効で、歴史、科学、哲学など、さまざまな分野の情報を自分のペースで吸収できます。" --lang_code j --speed 0.8 --model mlx-community/Kokoro-82M-8bit
Fetching 2 files: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 9098.27it/s]

Model: mlx-community/Kokoro-82M-8bit
Text: 読書は、私たちの想像力を豊かにし、心の世界を広げてくれる貴重な体験です。小説を読むことで、現実とは異なる世界に旅することができ、登場人物の感情や出来事を追体験することで、他者への理解も深まります。また、知識を得る手段としての読書も非常に有効で、歴史、科学、哲学など、さまざまな分野の情報を自分のペースで吸収できます。
Voice: None
Speed: 0.8x
Language: j
WARNING:root:Language mismatch, loading af_heart voice into Japanese pipeline.
==========
Duration:              00:00:36.649
Samples/sec:           0.0
Prompt:                459 tokens, 12.3 tokens-per-sec
Audio:                 1 samples, 0.0 samples-per-sec
Real-time factor:      1.02x
Processing time:       37.35s
Peak memory usage:     5.04GB
✅ Audio successfully generated and saving as: audio_000.wav

https://youtu.be/o2xag0twZHc

Chappa OishiChappa Oishi

4bit モデル

mlx_audio.tts.generate --text "読書は、私たちの想像力を豊かにし、心の世界を広げてくれる貴重な体験です。小説を読むことで、現実とは異なる世界に旅することができ、登場人物の感情や出来事を追体験することで、他者への理解も深まります。また、知識を得る手段としての読書も非常に有効で、歴史、科学、哲学など、さまざまな分野の情報を自分のペースで吸収できます。" --lang_code j --speed 0.8 --model mlx-community/Kokoro-82M-4bit
config.json: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2.41k/2.41k [00:00<00:00, 8.01MB/s]
kokoro-v1_0.safetensors: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 283M/283M [00:11<00:00, 24.8MB/s]
Fetching 2 files: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:12<00:00,  6.13s/it]

Model: mlx-community/Kokoro-82M-4bit
Text: 読書は、私たちの想像力を豊かにし、心の世界を広げてくれる貴重な体験です。小説を読むことで、現実とは異なる世界に旅することができ、登場人物の感情や出来事を追体験することで、他者への理解も深まります。また、知識を得る手段としての読書も非常に有効で、歴史、科学、哲学など、さまざまな分野の情報を自分のペースで吸収できます。
Voice: None
Speed: 0.8x
Language: j
WARNING:root:Language mismatch, loading af_heart voice into Japanese pipeline.
==========
Duration:              00:00:34.824
Samples/sec:           0.0
Prompt:                459 tokens, 13.2 tokens-per-sec
Audio:                 1 samples, 0.0 samples-per-sec
Real-time factor:      1.00x
Processing time:       34.66s
Peak memory usage:     4.88GB
✅ Audio successfully generated and saving as: audio_000.wav

https://youtu.be/G4sPZeL9xPg

Chappa OishiChappa Oishi

voice

デフォルトでは、af_heartとなっています。
他に3種類の音声があります。

  • af_heart
  • af_nova
  • af_bella
  • bf_emma
mlx_audio.tts.generate --text "こんにちは" --lang_code j --voice af_nova

男性の声がないのは、なぜだ?

このスクラップは7日前にクローズされました
作成者以外のコメントは許可されていません