@amerandish/farsava
TypeScript icon, indicating that this package has built-in type declarations

0.3.1 • Public • Published

Farsava Javascript SDK

نصب

<script src="farsava-sdk.js" type="text/javascript"></script>

یا

npm install @amerandish/farsava

استفاده

جهت استفاده از کیت توسعه فارس آوا ابتدا نیاز است یک آبجکت از Farsava.SDK درست کنید


نام توضیحات
<REST_API_BASEURL> آدرس سرور API
<ASR_LIVE_URL> آدرس سرور وب سوکت
<JWT_TOKEN> توکن

const sdk = new Farsava.SDK({
    baseUrl: "<REST_API_BASEURL>",
    liveUrl: "<ASR_LIVE_URL>",
    apiKey: "<JWT_TOKEN>",
});

سرویس ها


  • گفتار به نوشتار
  • نوشتار به گفتار
  • گفتار به نوشتار به صورت Live

مجموعه سرویس های گفتار به نوشتار

  • بررسی سلامت سرویس


عنوان نوع توضیحات
مدل ورودی - -
مدل خروجی Farsava.Models.HealthCheckModel نتیجه درخواست

  • async/await

    try {
        const response = await sdk.speech.healthCheck();
        // response model type is Farsava.Models.HealthCheckModel
        // handle response
    } catch (err) {
        // handle error
    }
  • then/catch

    sdk.speech
        .healthCheck()
        .then((response) => {
            // response model type is Farsava.Models.HealthCheckModel
            // handle response
        })
        .catch((err) => {
            // handle error
        });
  • تبدیل گفتار به نوشتار برای فایل های صوتی با زمان کمتر از ۱۵ ثانیه


عنوان نوع توضیحات
مدل ورودی Farsava.Models.ASRRequestModel تنظیمات اولیه جهت ارسال درخواست
مدل خروجی Farsava.Models.ASRResponseModel نتیجه درخواست

  • async/await

    try {
        const base64AudioData = "";
        const config = new Farsava.Models.RecognitionConfigModel({
            audioEncoding: "LINEAR16",
            sampleRateHertz: 16000,
            languageCode: "fa",
            maxAlternatives: 1,
            profanityFilter: true,
            asrModel: "default",
            languageModel: "general",
        });
        const audio = new Farsava.Models.RecognitionAudioModel({
            data: base64AudioData,
        });
        const model = new Farsava.Models.ASRRequestModel({ config, audio });
        const response = await sdk.speech.asr(model);
        // response model type is Farsava.Models.ASRResponseModel
        // handle response
    } catch (err) {
        // handle error
    }
  • then/catch

    const base64AudioData = "";
    const config = new Farsava.Models.RecognitionConfigModel({
        audioEncoding: "LINEAR16",
        sampleRateHertz: 16000,
        languageCode: "fa",
        maxAlternatives: 1,
        profanityFilter: true,
        asrModel: "default",
        languageModel: "general",
    });
    const audio = new Farsava.Models.RecognitionAudioModel({
        data: base64AudioData,
    });
    const model = new Farsava.Models.ASRRequestModel({ config, audio });
    sdk.speech
        .asr(model)
        .then((response) => {
            // response model type is Farsava.Models.ASRResponseModel
            // handle response
        })
        .catch((err) => {
            // handle error
        });

مجموعه سرویس های نوشتار به گفتار

  • بررسی سلامت سرویس


عنوان نوع توضیحات
مدل ورودی - -
مدل خروجی Farsava.Models.HealthCheckModel نتیجه درخواست

  • async/await

    try {
        const response = await sdk.voice.healthCheck();
        // response model type is Farsava.Models.HealthCheckModel
        // handle response
    } catch (err) {
        // handle error
    }
  • then/catch

    sdk.voice
        .healthCheck()
        .then((response) => {
            // response model type is Farsava.Models.HealthCheckModel
            // handle response
        })
        .catch((err) => {
            // handle error
        });
  • تبدیل نوشتار به گفتار


عنوان نوع توضیحات
مدل ورودی Farsava.Models.TTSRequestModel تنظیمات اولیه جهت ارسال درخواست
مدل خروجی string یک رشته حاوی اطلاعات صوت مورد نظر که به فرمت base64 می باشد

  • async/await

    try {
        const text = "";
        const synthesisInput = new Farsava.Models.TTSSynthesisInputModel({
            text: text,
        });
        const voiceConfig = new Farsava.Models.TTSVoiceConfigModel({
            languageCode: "fa",
            voiceId: "b6e9c993-729e-4e0f-955b-f229cf1f77ee",
            name: "default",
            gender: "female",
        });
        const audioConfig = new Farsava.Models.TTSAudioConfigModel({
            audioEncoding: "LINEAR16",
            speakingRate: 1,
            pitch: 0,
            volumeGainDb: 0,
            sampleRateHertz: 22050,
            bitRate: 0,
        });
        const model = new Farsava.Models.TTSRequestModel({
            synthesisInput,
            voiceConfig,
            audioConfig,
        });
        const response = await sdk.voice.tts(model);
        // response model type is base64 string contain audio
        // handle response
    } catch (err) {
        // handle error
    }
  • then/catch

    const text = "";
    const synthesisInput = new Farsava.Models.TTSSynthesisInputModel({
        text: text,
    });
    const voiceConfig = new Farsava.Models.TTSVoiceConfigModel({
        languageCode: "fa",
        voiceId: "b6e9c993-729e-4e0f-955b-f229cf1f77ee",
        name: "default",
        gender: "female",
    });
    const audioConfig = new Farsava.Models.TTSAudioConfigModel({
        audioEncoding: "LINEAR16",
        speakingRate: 1,
        pitch: 0,
        volumeGainDb: 0,
        sampleRateHertz: 22050,
        bitRate: 0,
    });
    const model = new Farsava.Models.TTSRequestModel({
        synthesisInput,
        voiceConfig,
        audioConfig,
    });
    sdk.speech
        .asr(model)
        .then((response) => {
            // response model type is base64 string contain audio
            // handle response
        })
        .catch((err) => {
            // handle error
        });

مجموعه سرویس های گفتار به نوشتار Live

  • تبدیل گفتار به نوشتار


عنوان نوع توضیحات
مدل ورودی string یک رشته حاوی اطلاعات فایل ورودی که به base64 تبدیل شده است
مدل خروجی Farsava.Models.ASRResponseModel نتیجه درخواست

  • open socket connection

    sdk.live.openConnection((err, data) => {
        console.log("err", err);
        console.log("data", data);
    });
  • send with interval

    const CHUNK_SIZE = 16000;
    const INTERVAL_DURATION = 1000; // in milliseconds
    sdk.live.sendChunkAndInterval(base64AudioData);

مدل ها

  • مدل نتیجه درخواست سلامت سرویس (Farsava.Models.HealthCheckModel)

    Field Type Required Accept Values
    status string
    message string
    version string
  • مدل ارسال درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.ASRRequestModel)

    Field Type Required Accept Values
    config Farsava.Models.RecognitionConfigModel
    audio Farsava.Models.RecognitionAudioModel
  • مدل ارسال درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionConfigModel)

    Field Type Required Accept Values
    audioEncoding string "LINEAR16"
    sampleRateHertz number 16000
    languageCode string "fa"
    maxAlternatives number 1
    profanityFilter boolean true
    asrModel string "default"
    languageModel string "general"
  • مدل ارسال درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionAudioModel)

    Field Type Required Accept Values
    data string
  • مدل نتیجه درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.ASRResponseModel)

    Field Type Required Accept Values
    transcriptionId string
    duration number
    inferenceTime number
    status string
    results Array[Farsava.Models.RecognitionResultModel]
  • مدل نتیجه درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionResultModel)

    Field Type Required Accept Values
    transcript string
    confidence number
    words Array[Farsava.Models.RecognitionWordModel]
  • مدل نتیجه درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionWordModel)

    Field Type Required Accept Values
    startTime number
    endTime number
    word string
    confidence number
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSRequestModel)

    Field Type Required Accept Values
    synthesisInput Farsava.Models.TTSSynthesisInputModel
    voiceConfig Farsava.Models.TTSVoiceConfigModel
    audioConfig Farsava.Models.TTSAudioConfigModel
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSSynthesisInputModel)

    Field Type Required Accept Values
    text string
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSVoiceConfigModel)

    Field Type Required Accept Values
    languageCode string "fa"
    voiceId string "b6e9c993-729e-4e0f-955b-f229cf1f77ee"
    name string "default"
    gender string "female"
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSAudioConfigModel)

    Field Type Required Accept Values
    audioEncoding string "LINEAR16", "MP3", "OGG", "FLAC"
    speakingRate number in range (0.5,2.0), step 0.1
    pitch number in range (-5, 5), step 1.0
    volumeGainDb number in range (-20, 20), step 1.0
    sampleRateHertz number 8000, 16000, 22050, 24000
    bitRate number 32, 64, 128, 198, 256, 320

Package Sidebar

Install

npm i @amerandish/farsava

Weekly Downloads

2

Version

0.3.1

License

LGPL-3.0-or-later

Unpacked Size

65.6 kB

Total Files

43

Last publish

Collaborators

  • amin_amerandish