Add Colab example (#67)

Thank you @HarishDevLab for the suggestion, I just reimplemented the PR
to link to a version-controlled notebook.
This commit is contained in:
Václav Volhejn
2026-01-19 10:29:53 +00:00
committed by GitHub
parent 83eac9f5c7
commit 6f9dd250c2
2 changed files with 88 additions and 1 deletions
+8 -1
View File
@@ -59,6 +59,8 @@ for each voice.
* [azelma](https://huggingface.co/kyutai/tts-voices/blob/main/vctk/p303_023.wav)
The `--voice` argument can also take a plain wav file as input for voice cloning.
You can use your own or check out our [voice repository](https://huggingface.co/kyutai/tts-voices).
Feel free to check out the [generate documentation](https://github.com/kyutai-labs/pocket-tts/tree/main/docs/generate.md) for more details and examples.
For trying multiple voices and prompts quickly, prefer using the `serve` command.
@@ -76,6 +78,8 @@ You can check out the [serve documentation](https://github.com/kyutai-labs/pocke
## Using it as a Python library
You can try out the Python library on Colab [here](https://colab.research.google.com/github/kyutai-labs/pocket-tts/blob/main/docs/pocket-tts-example.ipynb).
Install the package with
```bash
pip install pocket-tts
@@ -90,7 +94,10 @@ import scipy.io.wavfile
tts_model = TTSModel.load_model()
voice_state = tts_model.get_state_for_audio_prompt(
"hf://kyutai/tts-voices/alba-mackenna/casual.wav"
"alba" # One of the pre-made voices, see above
# You can also use any voice file you have locally or from Hugging Face:
# "./some_audio.wav"
# or "hf://kyutai/tts-voices/expresso/ex01-ex02_default_001_channel2_198s.wav"
)
audio = tts_model.generate_audio(voice_state, "Hello world, this is a test.")
# Audio is a 1D torch tensor containing PCM data.
+80
View File
@@ -0,0 +1,80 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "OiFxAw6MoHnp"
},
"outputs": [],
"source": [
"# Locally, we recommend using `uv` over `pip`\n",
"!pip install pocket-tts"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "FfBHOrFcU0gI"
},
"outputs": [],
"source": [
"import scipy.io.wavfile\n",
"from IPython.display import Audio\n",
"\n",
"from pocket_tts import TTSModel\n",
"\n",
"# The pre-defined voices are alba, marius, javert, jean, fantine, cosette, eponine, and azelma.\n",
"# You can also clone any voice you'd like by passing a file path!\n",
"# For voice cloning, please go to https://huggingface.co/kyutai/pocket-tts\n",
"# and accept the terms, then make sure you're logged in locally with `uvx hf auth login`.\n",
"voice = \"alba\"\n",
"\n",
"tts_model = TTSModel.load_model()\n",
"voice_state = tts_model.get_state_for_audio_prompt(voice)\n",
"\n",
"# Audio is a 1D torch tensor containing PCM data\n",
"audio = tts_model.generate_audio(voice_state, \"Hello world, this is a test.\")\n",
"\n",
"# You can also find the output in the files tab on the left\n",
"scipy.io.wavfile.write(\"output.wav\", tts_model.sample_rate, audio.numpy())\n",
"\n",
"Audio(audio.numpy(), rate=tts_model.sample_rate)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "gbnHfLwbo5W8"
},
"outputs": [],
"source": []
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "pocket-tts",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.16"
}
},
"nbformat": 4,
"nbformat_minor": 0
}