89 lines
2.8 KiB
Markdown
89 lines
2.8 KiB
Markdown
---
|
|
library_name: transformers
|
|
tags:
|
|
- unsloth
|
|
- trl
|
|
- sft
|
|
- tts
|
|
license: apache-2.0
|
|
language:
|
|
- ary
|
|
datasets:
|
|
- KandirResearch/DarijaTTS-clean
|
|
base_model:
|
|
- OuteAI/OuteTTS-0.2-500M
|
|
pipeline_tag: text-to-speech
|
|
---
|
|
# Moroccan Darija TTS
|
|
|
|
This is a text-to-speech (TTS) model for Moroccan Darija, fine-tuned from [OuteAI/OuteTTS-0.2-500M](https://huggingface.co/OuteAI/OuteTTS-0.2-500M) on the [KandirResearch/DarijaTTS-clean](https://huggingface.co/datasets/KandirResearch/DarijaTTS-clean) dataset.
|
|
|
|
## Model Details
|
|
- **Base Model:** [OuteAI/OuteTTS-0.2-500M](https://huggingface.co/OuteAI/OuteTTS-0.2-500M)
|
|
- **Dataset:** [KandirResearch/DarijaTTS-clean](https://huggingface.co/datasets/KandirResearch/DarijaTTS-clean)
|
|
- **Training Method:** Fine-tuned using Unsloth's `SFTTrainer`
|
|
- **Dataset Preparation:** Preprocessed following [OuteTTS training guide](https://github.com/edwko/OuteTTS/blob/main/examples/training/OuteTTS-0.3/train.md)
|
|
- **Demo:** [Try it here](https://huggingface.co/spaces/Lyte/DarijaTTS-test)
|
|
|
|
## Usage
|
|
|
|
> [!IMPORTANT]
|
|
> **Compatibility Note**
|
|
> Recent updates to `outetts` have introduced breaking changes. If you encounter the error:
|
|
> `AttributeError: module 'outetts' has no attribute 'GGUFModelConfig_v2'`
|
|
>
|
|
> **Solution:** Please install a compatible version (0.3.3 or 0.3.2) to resolve this:
|
|
> ```bash
|
|
> pip install outetts==0.3.3
|
|
> ```
|
|
|
|
You can run the model using `outetts` as follows:
|
|
|
|
Install `outetts` and `llama-cpp-python`:
|
|
```bash
|
|
pip install outetts==0.3.3 llama-cpp-python huggingface_hub
|
|
````
|
|
|
|
```python
|
|
import outetts
|
|
from outetts.models.config import GenerationConfig
|
|
from huggingface_hub import hf_hub_download
|
|
|
|
model_path = hf_hub_download(
|
|
repo_id="KandirResearch/DarijaTTS-v0.1-500M",
|
|
filename="unsloth.Q8_0.gguf",
|
|
)
|
|
model_config = outetts.GGUFModelConfig_v2(
|
|
model_path=model_path,
|
|
tokenizer_path="KandirResearch/DarijaTTS-v0.1-500M",
|
|
)
|
|
interface = outetts.InterfaceGGUF(model_version="0.3", cfg=model_config)
|
|
|
|
def tts(text, temperature=0.3, repetition_penalty=1.1):
|
|
gen_cfg = GenerationConfig(
|
|
text=text,
|
|
temperature=temperature,
|
|
repetition_penalty=repetition_penalty,
|
|
max_length=4096,
|
|
)
|
|
output = interface.generate(config=gen_cfg)
|
|
output_path = "output.wav"
|
|
output.save(output_path)
|
|
return output_path
|
|
|
|
# Example usage
|
|
audio_path = tts("السلام كيداير لاباس عليك؟")
|
|
print(f"Generated audio saved at: {audio_path}")
|
|
```
|
|
|
|
## Training
|
|
|
|
The model was fine-tuned using `Unsloth`'s `SFTTrainer`. The dataset was preprocessed following the [OuteTTS training guide](https://github.com/edwko/OuteTTS/blob/main/examples/training/OuteTTS-0.3/train.md). LoRA-based fine-tuning was applied to improve efficiency.
|
|
|
|
# Support Me
|
|
|
|
[](https://ko-fi.com/lyte)
|
|
|
|
-----
|
|
|
|
For any issues or improvements, feel free to open a discussion or PR\! |