@amerandish/farsava v0.3.1
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 ArrayFarsava.Models.RecognitionResultModel ✓ مدل نتیجه درخواست به سامانه تبدیل گفتار به نوشتار (Farsava.Models.RecognitionResultModel)
Field Type Required Accept Values transcript string ✓ confidence number ✓ words ArrayFarsava.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)
, step0.1
pitch number ✓ in range (-5, 5)
, step1.0
volumeGainDb number ✓ in range (-20, 20)
, step1.0
sampleRateHertz number ✓ 8000, 16000, 22050, 24000
bitRate number ✓ 32, 64, 128, 198, 256, 320