Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fishaudio/fish-audio-python

Repository files navigation

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")

Sometimes, you may need to change our endpoint to another address. You can use

from fish_audio_sdk import Session
session = Session("your_api_key", base_url="https://your-proxy-domain")

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())

AltStyle によって変換されたページ (->オリジナル) /