Cisimi V0.1
CiSiMiはリソース制約環境向けに設計された初期のテキスト音声変換モデルプロトタイプで、CPU上で効率的に動作し、高度な音声合成を実現します。
ダウンロード数 202
リリース時間 : 3/16/2025
モデル概要
CiSiMiはOuteTTS-0.3-500Mベースのテキスト音声変換モデルで、テキスト入力を処理しテキストと音声形式で応答できます。このモデルはリソース制約環境向けに設計され、llama.cppを介してCPU上で効率的に動作します。
モデル特徴
リソース効率
リソース制約環境向けに設計され、CPU上で効率的に動作
オープンソースツール
オープンソースツールで構築され、アクセシブルな音声技術作成におけるオープンソースの力を示しています
初期プロトタイプ
まだ初期段階ですが、高度なテキスト音声変換能力の普及に向けた一歩を表しています
モデル能力
テキスト音声変換
音声合成
英語音声生成
使用事例
音声アシスタント
音声Q&A
ユーザーがテキスト質問を入力し、モデルが音声形式で回答
自然な音声応答を生成
教育
音声学習補助
テキスト学習教材を音声形式に変換
視覚障害学習者を支援またはマルチモーダル学習体験を提供
🚀 CiSiMi: テキスト読み上げTTSモデル
CiSiMiは、テキスト入力を処理し、テキストと音声の両方で応答するテキスト読み上げモデルの初期プロトタイプです。リソースが制限された環境向けに構築され、llama.cppを使用してCPU上で効率的に実行できるため、強力なGPUがなくても高度な音声合成が可能になります。
このプロジェクトは、オープンソースツールを使ってアクセスしやすい音声技術を作成する力を実証しています。まだ初期段階にありますが、高度なテキスト読み上げ機能を民主化する一歩となっています。
🚀 クイックスタート
CiSiMiは、テキスト入力を処理し、テキストと音声の両方で応答できるテキスト読み上げモデルの初期プロトタイプです。リソースが制限された環境向けに構築され、llama.cppを使用してCPU上で効率的に実行できるため、強力なGPUがなくても高度な音声合成が可能になります。
🔧 技術詳細
モデル仕様
プロパティ | 詳細 |
---|---|
モデルタイプ | OuteTTS-0.3-500Mベース |
言語 | 英語 |
パイプライン | テキスト読み上げ |
パラメータ | 5億 |
学習データセットサイズ | 約15,000サンプル |
将来の目標 | 20万 - 50万のデータセットに拡大し、5億と10億のパラメータモデルのバリアントを使用したマルチターン会話を実現し、リアルタイムストリーミングを追加する |
学習方法
-
データセットの準備:
- gruhit-patel/alpaca_speech_instructから始めました。
- コード、数式、非英語の内容を削除してクリーニングしました。
- 入力+出力テキストが256トークン以下のエントリのみを残すようにフィルタリングしました。
-
音声生成:
- hexgrad/Kokoro-82Mを使用してテキスト出力を音声に変換しました。
- OpenAI Whisperを使用して各音声生成を検証しました。
- 結果のデータセットをKandirResearch/Speech2Speechとして公開しました。
-
モデル学習:
- 修正されたOuteTTS手法を使用してデータセットを前処理しました(学習詳細)。
- Unsloth SFTを使用してOuteAI/OuteTTS-0.3-500Mをファインチューニングしました。
- 概念実証として6エポック学習し、損失率2.27に達しました。
- ~概念実証として3エポック学習し、損失率2.42に達しました~
💻 使用例
基本的な使用法
Explain to me how gravity works!
高度な使用法
import torch
import outetts
import numpy as np
from huggingface_hub import hf_hub_download
from outetts.wav_tokenizer.audio_codec import AudioCodec
from outetts.version.v2.prompt_processor import PromptProcessor
from outetts.version.playback import ModelOutput
# モデルのダウンロード
model_path = hf_hub_download(
repo_id="KandirResearch/CiSiMi-v0.1",
filename="unsloth.Q8_0.gguf",
)
# モデルの設定
model_config = outetts.GGUFModelConfig_v2(
model_path=model_path,
tokenizer_path="KandirResearch/CiSiMi-v0.1",
)
# コンポーネントの初期化
interface = outetts.InterfaceGGUF(model_version="0.3", cfg=model_config)
audio_codec = AudioCodec()
prompt_processor = PromptProcessor("KandirResearch/CiSiMi-v0.1")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
gguf_model = interface.get_model()
# トークンから音声を抽出するヘルパー関数
def get_audio(tokens):
outputs = prompt_processor.extract_audio_from_tokens(tokens)
if not outputs:
return None
audio_tensor = audio_codec.decode(torch.tensor([[outputs]], dtype=torch.int64).to(device))
return ModelOutput(audio_tensor, audio_codec.sr)
# テキスト出力をクリーニングするヘルパー関数
def extract_text_from_tts_output(tts_output):
text = ""
for line in tts_output.strip().split('\n'):
if '<|audio_end|>' in line or '<|im_end|>' in line:
continue
if '<|' in line:
word = line.split('<|')[0].strip()
if word:
text += word + " "
else:
text += line.strip() + " "
return text.strip()
# 応答を生成する関数
def generate_response(instruction):
prompt = f"<|im_start|>\nInstructions:\n{instruction}\n<|im_end|>\nAnswer:\n"
gen_cfg = outetts.GenerationConfig(
text=prompt,
temperature=0.6,
repetition_penalty=1.1,
max_length=4096,
speaker=None
)
input_ids = prompt_processor.tokenizer.encode(prompt)
tokens = gguf_model.generate(input_ids, gen_cfg)
output_text = prompt_processor.tokenizer.decode(tokens, skip_special_tokens=False)
if "<|audio_end|>" in output_text:
first_part, _, _ = output_text.partition("<|audio_end|>")
if "<|audio_end|>\n<|im_end|>\n" not in first_part:
first_part += "<|audio_end|>\n<|im_end|>\n"
extracted_text = extract_text_from_tts_output(first_part)
audio_start_pos = first_part.find("<|audio_start|>\n") + len("<|audio_start|>\n")
audio_end_pos = first_part.find("<|audio_end|>\n<|im_end|>\n") + len("<|audio_end|>\n<|im_end|>\n")
if audio_start_pos >= len("<|audio_start|>\n") and audio_end_pos > audio_start_pos:
audio_tokens_text = first_part[audio_start_pos:audio_end_pos]
audio_tokens = prompt_processor.tokenizer.encode(audio_tokens_text)
audio_output = get_audio(audio_tokens)
if audio_output is not None and hasattr(audio_output, 'audio') and audio_output.audio is not None:
audio_numpy = audio_output.audio.cpu().numpy()
if audio_numpy.ndim > 1:
audio_numpy = audio_numpy.squeeze()
return extracted_text, (audio_output.sr, audio_numpy)
return output_text, None
# 例の使用法
question = "What is the meaning of life?"
response_text, response_audio = generate_response(question)
print(response_text)
# 音声が利用可能な場合は再生する
if response_audio is not None:
if "ipykernel" in sys.modules:
from IPython.display import display, Audio
display(Audio(response_audio[1], rate=response_audio[0], autoplay=True))
else:
import sounddevice as sd
sd.play(response_audio[1], samplerate=response_audio[0])
sd.wait()
📦 インストール
pip install outetts llama-cpp-python --upgrade
pip install huggingface_hub sounddevice
🔍 制限事項と将来の展望
この初期プロトタイプには、いくつかの改善すべき点があります:
- 限られた学習データ(約15,000サンプル)
- 基本的なプロンプト/チャットテンプレート構造
- 学習ハイパーパラメータを最適化する機会
- マルチターン会話機能の可能性
潜在的な制限: このタイプのモデルはすぐにコンテキストウィンドウを埋め尽くすため、一般的に小さいモデルの方が実装に適しています。
📄 ライセンス
このモデルはCC BY-SA 4.0ライセンスの下で提供されています。
👏 謝辞と引用
このモデルは、以下のオープンソースプロジェクトに基づいて構築されています:
- OuteAI/OuteTTS-0.3-500M - ベースモデル
- gruhit-patel/alpaca_speech_instruct - 初期データセット
- hexgrad/Kokoro-82M - TTS生成
- OpenAI Whisper - 音声検証
- Unsloth - 学習最適化
Kokoro 82M
Apache-2.0
Kokoroは8200万のパラメータを持つオープンソースのテキスト読み上げ(TTS)モデルで、軽量なアーキテクチャと高音質で知られ、高速かつコスト効率が高いという特徴があります。
音声合成 英語
K
hexgrad
2.0M
4,155
XTTS V2
その他
ⓍTTSは革新的な音声生成モデルで、わずか6秒の音声サンプルでクロスランゲージ音声クローンを実現し、17言語をサポートします。
音声合成
X
coqui
1.7M
2,630
F5 TTS
F5-TTSはストリームマッチングに基づく音声合成モデルで、流暢かつ忠実な音声合成に特化しており、特に童話の朗読などのシナリオに適しています。
音声合成
F
SWivid
851.49k
1,000
Bigvgan V2 22khz 80band 256x
MIT
BigVGANは大規模トレーニングに基づく汎用ニューラルボコーダーで、メルスペクトログラムから高品質なオーディオ波形を生成できます。
音声合成
B
nvidia
503.23k
16
Speecht5 Tts
MIT
LibriTTSデータセットでファインチューニングされたSpeechT5音声合成(テキスト読み上げ)モデルで、高品質なテキスト読み上げ変換をサポートします。
音声合成
Transformers

S
microsoft
113.83k
760
Dia 1.6B
Apache-2.0
DiaはNari Labsが開発した16億パラメータのテキスト音声合成モデルで、テキストから高度にリアルな対話を直接生成でき、感情やイントネーションの制御をサポートし、非言語コミュニケーション内容も生成可能です。
音声合成
Safetensors 英語
D
nari-labs
80.28k
1,380
Csm 1b
Apache-2.0
CSMはSesameが開発した10億パラメータ規模の音声生成モデルで、テキストと音声入力からRVQ音声エンコーディングを生成可能
音声合成
Safetensors 英語
C
sesame
65.03k
1,950
Kokoro 82M V1.1 Zh
Apache-2.0
Kokoroはオープンウェイトの小型ながら強力なテキスト読み上げ(TTS)モデルシリーズで、専門データセットから100名の中国語話者データを追加しました。
音声合成
K
hexgrad
51.56k
112
Indic Parler Tts
Apache-2.0
Indic Parler-TTS は Parler-TTS Mini の多言語インド語拡張版で、21言語をサポートし、複数のインド言語と英語を含みます。
音声合成
Transformers 複数言語対応

I
ai4bharat
43.59k
124
Bark
MIT
BarkはSunoによって作成されたTransformerベースのテキストからオーディオへのモデルで、非常にリアルな多言語音声、音楽、背景ノイズ、シンプルな音響効果を生成できます。
音声合成
Transformers 複数言語対応

B
suno
35.72k
1,326
おすすめAIモデル
Llama 3 Typhoon V1.5x 8b Instruct
タイ語専用に設計された80億パラメータの命令モデルで、GPT-3.5-turboに匹敵する性能を持ち、アプリケーションシナリオ、検索拡張生成、制限付き生成、推論タスクを最適化
大規模言語モデル
Transformers 複数言語対応

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-TinyはSODAデータセットでトレーニングされた超小型対話モデルで、エッジデバイス推論向けに設計されており、体積はCosmo-3Bモデルの約2%です。
対話システム
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
RoBERTaアーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98