Skip to main content

fish.audio platform api sdk

Project description

Fish Audio Python SDK

To provide convenient Python program integration for https://docs.fish.audio.

Install

pip install fish-audio-sdk

Usage

Initialize a Session to use APIs. All APIs have synchronous and asynchronous versions. If you want to use the asynchronous version of the API, you only need to rewrite the original session.api_call(...) to session.api_call.awaitable(...).

from fish_audio_sdk import Session

session = Session("your_api_key")

Text to speech

from fish_audio_sdk import Session, TTSRequest

session = Session("your_api_key")

with open("r.mp3", "wb") as f:
    for chunk in session.tts(TTSRequest(text="Hello, world!")):
        f.write(chunk)

Or use async version:

import asyncio
import aiofiles

from fish_audio_sdk import Session, TTSRequest

session = Session("your_api_key")


async def main():
    async with aiofiles.open("r.mp3", "wb") as f:
        async for chunk in session.tts.awaitable(
            TTSRequest(text="Hello, world!"),
        ):
            await f.write(chunk)


asyncio.run(main())

Reference Audio

from fish_audio_sdk import TTSRequest

TTSRequest(
    text="Hello, world!",
    reference_id="your_model_id",
)

Or just use ReferenceAudio in TTSRequest:

from fish_audio_sdk import TTSRequest, ReferenceAudio

TTSRequest(
    text="Hello, world!",
    references=[
        ReferenceAudio(
            audio=audio_file.read(),
            text="reference audio text",
        )
    ],
)

List models

models = session.list_models()
print(models)

Or use async version:

import asyncio


async def main():
    models = await session.list_models.awaitable()
    print(models)


asyncio.run(main())

Get a model info by id

model = session.get_model("your_model_id")
print(model)

Or use async version:

import asyncio


async def main():
    model = await session.get_model.awaitable("your_model_id")
    print(model)


asyncio.run(main())

Create a model

model = session.create_model(
    title="test",
    description="test",
    voices=[voice_file.read(), other_voice_file.read()],
    cover_image=image_file.read(),
)
print(model)

Or use async version:

import asyncio


async def main():
    model = await session.create_model.awaitable(
        title="test",
        description="test",
        voices=[voice_file.read(), other_voice_file.read()],
        cover_image=image_file.read(),
    )
    print(model)


asyncio.run(main())

Delete a model

session.delete_model("your_model_id")

Or use async version:

import asyncio


async def main():
    await session.delete_model.awaitable("your_model_id")


asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fish_audio_sdk-2024.9.27.tar.gz (25.1 kB view hashes)

Uploaded Source

Built Distribution

fish_audio_sdk-2024.9.27-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page