Nine-Pin Masters

    @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

    Install

    npm i @amerandish/farsava

    DownloadsWeekly Downloads

    5

    Version

    0.3.1

    License

    LGPL-3.0-or-later

    Unpacked Size

    65.6 kB

    Total Files

    43

    Last publish

    Collaborators

    • amin_amerandish