شروع به کار با هوش مصنوعی Fish Audio


Fish Audio یک پلتفرم هوش مصنوعی صوتی است که روی تولید و پردازش صدا تمرکز دارد و سرویس‌هایی مثل تبدیل متن به گفتار (TTS)، تبدیل گفتار به متن (STT)، شبیه‌سازی صدا (Voice Cloning) و ساخت Voice Agent ارائه می‌کند.

در حال حاضر، لیارا، مدل‌های زیر از Fish Audio را در API خود پشتیبانی می‌کند:

  • مدل fish-audio/s2-pro
  • مدل fish-audio/s1
  • مدل fish-audio/transcribe-1

پس از ایجاد سرویس هوش مصنوعی و دریافت baseUrl و ساخت کلید، می‌توانید از مدل‌های Fish Audio استفاده کنید.

اتصال به مدل های تبدیل متن به گفتار (TTS)

برای کار با مدل‌های TTS می‌توانید از ماژول openai استفاده کنید. در ادامه، مثال‌های استفاده از مدل‌های TTS آمده است:

کپی
// npm install openai dotenv
require("dotenv").config();

const fs = require("fs");
const OpenAI = require("openai");

const client = new OpenAI({
apiKey: process.env.LIARA_API_KEY,
baseURL: process.env.BASE_URL,
});

async function n() {
const response = await client.audio.speech.create({
  model: process.env.TTS_MODEL_NAME,
  input: "Hello! This audio was generated using Fish Audio through Liara.",
  response_format: "mp3",
});

const buffer = Buffer.from(await response.arrayBuffer());

fs.writeFileSync("speech.mp3", buffer);

console.log("Audio saved to speech.mp3");
}

n().catch(console.error);

پروژه کامل قطعه کد فوق در گیت‌هاب لیارا قابل مشاهده و استفاده است.

در قطعه کدهای فوق، به‌جای BASE_URL، آدرس سرویس هوش مصنوعی خود را قرار دهید و به‌جای LIARA_API_KEY، کلید API خود را وارد کنید. همچنین، به‌جای TTS_MODEL_NAME، نام یکی از مدل‌های TTS را قرار دهید.


اتصال به مدل های تبدیل گفتار به متن (STT)

برای کار با مدل‌های TTS می‌توانید از ماژول openai استفاده کنید. در ادامه، مثال‌های استفاده از مدل‌های TTS آمده است:

کپی
// npm install openai dotenv

require("dotenv").config();

const fs = require("fs");
const path = require("path");
const OpenAI = require("openai");
const { toFile } = require("openai");

const client = new OpenAI({
apiKey: process.env.LIARA_API_KEY,
baseURL: process.env.BASE_URL,
});

async function main() {
const audioPath = path.resolve(process.env.AUDIO_FILE);

if (!fs.existsSync(audioPath)) {
  throw new Error(`Audio file not found: ${audioPath}`);
}

const extension = path.extname(audioPath).toLowerCase();

const mimeTypes = {
  ".mp3": "audio/mpeg",
  ".wav": "audio/wav",
  ".flac": "audio/flac",
  ".m4a": "audio/mp4",
  ".ogg": "audio/ogg",
  ".webm": "audio/webm",
  ".aac": "audio/aac",
};

const mimeType = mimeTypes[extension];

if (!mimeType) {
  throw new Error(`Unsupported audio format: ${extension}`);
}

const audioBuffer = fs.readFileSync(audioPath);

const audioFile = await toFile(
  audioBuffer,
  path.basename(audioPath),
  {
    type: mimeType,
  }
);

const transcription = await client.audio.transcriptions.create({
  model: process.env.STT_MODEL_NAME,
  file: audioFile,
});

console.log(transcription.text);
}

main().catch(console.error);

پروژه کامل قطعه کد فوق در گیت‌هاب لیارا قابل مشاهده و استفاده است.

در قطعه کدهای فوق، به‌جای BASE_URL، آدرس سرویس هوش مصنوعی خود را قرار دهید و به‌جای LIARA_API_KEY، کلید API خود را وارد کنید. همچنین، به‌جای STT_MODEL_NAME، نام مدل STT و به‌جای AUDIO_FILE، نام یا مسیر فایل صوتی موردنظر برای تبدیل گفتار به متن را قرار دهید.