0.3.1 • Published 4 years ago

@amerandish/farsava v0.3.1

Weekly downloads
-
License
LGPL-3.0-or-later
Repository
github
Last release
4 years ago

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)

    FieldTypeRequiredAccept Values
    statusstring
    messagestring
    versionstring
  • مدل ارسال درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.ASRRequestModel)

    FieldTypeRequiredAccept Values
    configFarsava.Models.RecognitionConfigModel
    audioFarsava.Models.RecognitionAudioModel
  • مدل ارسال درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionConfigModel)

    FieldTypeRequiredAccept Values
    audioEncodingstring"LINEAR16"
    sampleRateHertznumber16000
    languageCodestring"fa"
    maxAlternativesnumber1
    profanityFilterbooleantrue
    asrModelstring"default"
    languageModelstring"general"
  • مدل ارسال درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionAudioModel)

    FieldTypeRequiredAccept Values
    datastring
  • مدل نتیجه درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.ASRResponseModel)

    FieldTypeRequiredAccept Values
    transcriptionIdstring
    durationnumber
    inferenceTimenumber
    statusstring
    resultsArrayFarsava.Models.RecognitionResultModel
  • مدل نتیجه درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionResultModel)

    FieldTypeRequiredAccept Values
    transcriptstring
    confidencenumber
    wordsArrayFarsava.Models.RecognitionWordModel
  • مدل نتیجه درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionWordModel)

    FieldTypeRequiredAccept Values
    startTimenumber
    endTimenumber
    wordstring
    confidencenumber
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSRequestModel)

    FieldTypeRequiredAccept Values
    synthesisInputFarsava.Models.TTSSynthesisInputModel
    voiceConfigFarsava.Models.TTSVoiceConfigModel
    audioConfigFarsava.Models.TTSAudioConfigModel
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSSynthesisInputModel)

    FieldTypeRequiredAccept Values
    textstring
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSVoiceConfigModel)

    FieldTypeRequiredAccept Values
    languageCodestring"fa"
    voiceIdstring"b6e9c993-729e-4e0f-955b-f229cf1f77ee"
    namestring"default"
    genderstring"female"
  • مدل ارسال درخواست به سامانه تبدیل نوشتار به گفتار (Farsava.Models.TTSAudioConfigModel)

    FieldTypeRequiredAccept Values
    audioEncodingstring"LINEAR16", "MP3", "OGG", "FLAC"
    speakingRatenumberin range (0.5,2.0), step 0.1
    pitchnumberin range (-5, 5), step 1.0
    volumeGainDbnumberin range (-20, 20), step 1.0
    sampleRateHertznumber8000, 16000, 22050, 24000
    bitRatenumber32, 64, 128, 198, 256, 320