Apiaudio هي API.Audio Python 3 SDK. يوفر هذا SDK الوصول السهل إلى API.Audio API للتطبيقات المكتوبة في Python.
يتم الحفاظ على هذا المستودع بنشاط من قبل المختبرات الأفلوريتمية. للحصول على أمثلة ، وصفات ومرجع API ، انظر API.Audio Docs. لا تتردد في التواصل مع أي أسئلة أو تعليقات!
يمكنك عرض هنا changelog المحدث.
ابدأ مع وصفات QuickStart لدينا.
لا تحتاج إلى رمز المصدر هذا إلا إذا كنت تريد تعديله. إذا كنت ترغب في استخدام الحزمة ، فما عليك سوى تشغيل:
pip install apiaudio -U
# or
pip3 install apiaudio -Uالتثبيت من المصدر مع:
python setup.py install
# or
python3 setup.py installبيثون 3.6+
إنشاء ملف hello.py
touch hello . py يجب تكوين هذه المكتبة باستخدام مفتاح API الخاص بحسابك المتوفرة في وحدة التحكم API.Audio. استيراد حزمة Apiaudio وقم بتعيين apiaudio.api_key مع مفتاح API الذي حصلت عليه من وحدة التحكم:
import apiaudio
apiaudio . api_key = "your-key"دعنا ننشئ أول أصل صوتي لدينا.
✍ إنشاء برنامج نصي جديد ، سيكون نص scriptText هو النص الذي تم توليفه لاحقًا.
script = apiaudio . Script . create ( scriptText = "Hello world" )
print ( script )؟ تقديم النص النص الذي تم إنشاؤه في الخطوة السابقة. دعنا نستخدم صوت أريا.
response = apiaudio . Speech . create ( scriptId = script [ "scriptId" ], voice = "Aria" )
print ( response )الآن دعنا ننضم إلى الخطاب الذي أنشأناه للتو باستخدام قالب صوتي.
response = apiaudio . Mastering . create (
scriptId = script . get ( "scriptId" ),
soundTemplate = "jakarta"
)
print ( response )قم بتنزيل الأصل الصوتي النهائي على دليل العمل الحالي الخاص بك:
filepath = apiaudio . Mastering . download ( scriptId = script [ "scriptId" ], destination = "." )
print ( filepath ) هل هذا صحيح؟ ؟ هذا هو ملف hello.py الأخير.
import apiaudio
apiaudio . api_key = "your-key"
# script creation
script = apiaudio . Script . create ( scriptText = "Hello world" )
# speech creation
response = apiaudio . Speech . create ( scriptId = script [ "scriptId" ], voice = "Aria" )
print ( response )
# mastering process
response = apiaudio . Mastering . create (
scriptId = script . get ( "scriptId" ),
soundTemplate = "jakarta"
)
print ( response )
# download
filepath = apiaudio . Mastering . download ( scriptId = script [ "scriptId" ], destination = "." )
print ( filepath )الآن دعنا ندير الرمز:
python hello.py
# or
python3 hello.pyبمجرد الانتهاء من هذا ، ابحث عن أصول الصوت التي تم تنزيلها وقم بتشغيلها!
import apiaudio تحتاج المكتبة إلى تكوين مفتاح Secret الخاص بحسابك المتوفرة في لوحة القيادة الأفلوريتمية. اضبط apiaudio.api_key مع مفتاح API الذي حصلت عليه من لوحة القيادة:
apiaudio . api_key = "your-key" يمكنك أيضًا المصادقة باستخدام متغير بيئة apiaudio_key وسيستخدمه Apiaudio SDK تلقائيًا. لإعداد ، افتح المحطة والنوع:
export apiaudio_key= < your-key > إذا قمت بتوفير كل من متغير البيئة وقيمة المصادقة apiaudio.api_key ، فسيتم استخدام قيمة apiaudio.api_key بدلاً من ذلك.
من أجل التحكم في تنظيم الطفل الخاص بك ، يرجى استخدام الطريقة التالية لافتراض معرف التنظيم.
اضبط معرف منظمة طفلك على None للتوقف عن افتراض منظمة. ستستخدم المكالمات اللاحقة إلى واجهة برمجة التطبيقات معرف المنظمة الخاص بك.
import apiaudio
apiaudio . set_assume_org_id ( 'child_org_id' )
# Stop using
apiaudio . set_assume_org_id ( None )راجع مورد المؤسسة لمزيد من العمليات التي يمكنك القيام بها حول مؤسستك.
هناك طريقتان لاستخدام الموارد.
النهج الموصى به هو استيراد جميع الموارد مباشرة من Apiaudio:
import apiaudio
apiaudio . Script . create () بدلاً من ذلك ، يمكنك استيراد فئات الموارد التي تريد استخدامها أولاً ، ثم استخدام طرق الموارد. على سبيل المثال ، لاستخدام Script ، يمكننا القيام:
from apiaudio import Script
Script . create () ينطبق نفس المنطق على الموارد الأخرى ( Speech ، Voice ، Sound ...)
Organizationيتيح لك مورد/فئة المؤسسة القيام ببعض استرداد البيانات حول مؤسستك ومنظماتك الطفلية.
أساليب المنظمة هي:
get_org_data() - احصل على بيانات المؤسسات ، بما في ذلك orgid ، orgname إلخ. org_data = apiaudio . Organization . get_org_data ()list_child_orgs() - قائمة المنظمات طفلك. child_orgs = apiaudio . Organization . list_child_orgs ()get_secrets() - احصل على مفتاح API و WebHook URL و WebHook Secret. secrets = apiaudio . Organization . get_secrets ()Scriptيتيح لك مورد/فئة البرنامج النصي إنشاء نصوص واستردادها وسردها. تعرف على المزيد حول البرامج النصية هنا.
طرق البرنامج النصي هي:
create() - إنشاء برنامج نصي جديد.
scriptText * [مطلوب] (سلسلة) - نص للنص الخاص بك. يمكن أن يحتوي البرنامج النصي على أقسام متعددة وعلامات SSML. تعرف على المزيد حول تفاصيل ScriptText هناprojectName (سلسلة) - اسم مشروعك. القيمة الافتراضية هي "افتراضي" (كحد أقصى 60 حرفًا)moduleName (سلسلة) - اسم الوحدة النمطية الخاصة بك. القيمة الافتراضية هي "افتراضي" (كحد أقصى 60 حرفًا)scriptName (سلسلة) - اسم البرنامج النصي الخاص بك. القيمة الافتراضية هي "افتراضي" (كحد أقصى 60 حرفًا)scriptId (سلسلة) - معرف مخصص للنص الخاص بك. إذا تم توفير معلمة ScriptID ، فسيتم تعيين اسم ProjectName و Modulename و ScriptName على نفس قيمة ScriptIdversions (القاموس) - قاموس يحتوي على إصدارات مختلفة من نص البرنامج النصي الخاص بك ، حيث يكون المفتاح هو اسم الإصدار ، وقيمته هي scriptText المرتبط. اسم الإصدار v0 محجوز كنص scriptText الافتراضي. القيمة الافتراضية هي "{}"metadata (قاموس) - بيانات التعريف الخاصة بك. هذا يقتصر على 2 كيلو بايت في الحجم. text = """
<<sectionName::hello>> Hello {{username|buddy}}
<<sectionName::bye>> Good bye from {{location|barcelona}}
"""
script = apiaudio . Script . create (
scriptText = text ,
projectName = "myProject" ,
moduleName = "myModule" ,
scriptName = "myScript" ,
scriptId = "id-1234" ,
metadata = { "author" : "sam" , "tags" : [ "demo" , "intro" ]}
)
# example 2 with versions
script = apiaudio . Script . create (
scriptText = "Default text" ,
versions = { "es" : "Hola" , "en" : "hello" }
) retrieve() - استرداد البرنامج النصي عن طريق المعرف.
scriptId * [مطلوب] (سلسلة) - معرف البرنامج النصي الذي تريد استرداده. بشكل افتراضي يسترجع الإصدار الرئيسي (V0).version (سلسلة) - إصدار البرنامج النصي الذي تريد استرداده. script = apiaudio . Script . retrieve ( scriptId = "id-1234" , version = "abc" ) preview - إرجاع البرنامج النصي مع تطبيق القاموس المطبقة. انظر LEXI لمزيد من الأمثلة حول كيفية استخدام ميزة القاموس.
حدود:
scriptId * [مطلوب] (سلسلة) - معرف البرنامج النصي الذي تريد استخدامه.voice * [مطلوب] (سلسلة) - الصوت الذي سيتم استخدامه لتقديم الكلام. هذا مطلوب لأن الإخراج يمكن أن يعتمد على الصوت أو رمز اللغة أو المزود.مثال:
text = """
The author of this repo has lived in two places in the
UK, <!location>Bude<!> and <!location>Bristol<!>.
"""
r = apiaudio . Script . create ( scriptText = text )
scriptId = r [ "scriptId" ]
preview = apiaudio . Script . preview ( scriptId = scriptId , language = "en-gb" ) list() - قائمة جميع البرامج النصية المتاحة في مؤسستك. هذه الطريقة تدعم التصفية.
projectName (سلسلة) - إرجاع أي نصوص مع اسم المشروع هذا.moduleName (سلسلة) - إرجاع أي نصوص مع هذا المعدل ، يلاحظ projectName أيضًا.scriptName (String) - إرجاع أي نصوص باستخدام اسم ScriptName ، وليس على حد سواء اسم projectName و moduleName .scriptId (سلسلة) - إرجاع أي نصوص مع هذا scriptid.verbose (Bool) - قائمة البرامج النصية في وضع المطوّل ( True بشكل افتراضي). اضبط هذا على False لإرجاع projectName و moduleName و scriptName و scriptId . scripts = apiaudio . Script . list () delete() - حذف البرنامج النصي. بشكل افتراضي ، سيؤدي هذا إلى حذف جميع إصدارات البرنامج النصي.
scriptId * [مطلوب] (سلسلة) - معرف البرنامج النصي الذي سيتم حذفهversion (السلسلة) - حذف نسخة محددة. #deletes version 'en' from scriptId 'myworkout'
scripts = apiaudio . Script . delete ( scriptId = "myworkout" , version = "en" ) delete_multiple() - حذف نصوص متعددة.
حدود:
projectName * [مطلوب] (سلسلة) - يحذف جميع البرامج النصية داخل اسم المشروع هذا.moduleName (سلسلة) - يحذف جميع البرامج النصية داخل هذا المعدل ، يجب أيضًا توفير اسم projectName .scriptName (String) - حذف جميع البرامج النصية داخل اسم البرنامج النصي هذا ، لاحظ كل من اسم projectName و moduleName .مثال:
#deletes all scripts within the project 'awesome_demos'
scripts = apiaudio . Script . delete_multiple ( projectName = "awesome_demos" ) get_random_text() - استرداد نص عشوائي من قائمة الفئات.
category (السلسلة) - الفئة التي يتم استرداد النص العشوائي منها. إذا لم يتم تحديد أي فئة ، فإن الوظيفة تتخلف عن "FunFact" text = apiaudio . Script . get_random_text ( category = "BibleVerse" )"BibleVerse" ، "FunFact" ، "InspirationalQuote" ، "Joke" ، " "MovieSynopsis" "Poem" ، "PhilosophicalQuestion" ، "Recipe" ، "TriviaQuestion" . Script.Directory Resourceيسرد بنية الدليل من البرامج النصية الخاصة بك ، أي اسم ProjectName/Modulename/ScriptName
Script.Directory طرق:
list_projects() - يسرد جميع المشاريع.
حدود:
مثال:
#Lists all project names
projects = apiaudio . Script . Directory . list_projects ()
print ( projects )
# example output: ["projectX", "projectY"] list_modules() - يسرد جميع الوحدات داخل ProjectPrefix.
حدود:
projectPrefix * [مطلوب] - سوف تسرد الوحدات النمطية التي تبدأ بهذا ProjectPrefix.مثال:
#Lists all module names
modules = apiaudio . Script . Directory . list_modules ( projectPrefix = "workout" )
print ( modules )
# example output: ["workout_1/over60s", "workout_2/morning_routine"] list_script_names() - يسرد جميع الوحدات داخل ProjectPrefix.
حدود:
projectPrefix * [مطلوب] - سوف تسرد أسماء ScriptNames بدءًا من هذا ProjectPrefix.modulePrefix * [مطلوب] - سوف تسرد أسماء ScriptNames بدءًا من هذا MODULEPREFIX.مثال:
#Lists all script names
scriptNames = apiaudio . Script . Directory . list_script_names ( projectPrefix = "workout_1" , modulePrefix = "over60s" )
print ( scriptNames )
# example output: ["workout_1/over60s/routine_1", "workout_1/over60s/routine_2", "workout_1/over60s/routine_3"]Speechيتيح لك الكلام القيام بنصوص إلى كلام (TTS) مع واجهة برمجة التطبيقات الخاصة بنا باستخدام جميع الأصوات المتاحة. استخدمه لإنشاء ملف صوت الكلام من البرنامج النصي الخاص بك.
طرق الكلام هي:
create() إرسال طلب نص إلى كلام إلى خدمة النص إلى الكلام الخاص بنا.
حدود:
scriptId * [مطلوب] (سلسلة) - معرف البرنامج النصيversion (سلسلة) - إصدار البرنامج النصي المراد إنتاجه. الافتراضي هو "".voice (سلسلة) - اسم الصوت. راجع قائمة الأصوات المتاحة باستخدام الموارد الصوتية. الصوت الافتراضي هو "جوانا".speed (سلسلة) - سرعة الصوت. السرعة الافتراضية هي 100.effect (سلسلة) - ضع تأثيرًا مضحكًا في صوتك. يمكنك تجربة ما يلي: dark_father ، chewie ، 88b ، 2r2d ،silencePadding (عدد صحيح) - أضف حشوة صمت إلى مسارات الكلام الخاصة بك (بالميلي ثانية). الافتراضي هو 0 (بدون حشوة)audience (DICT) - حدد قيم المعلمات في البرنامج النصي الخاص بك. على سبيل المثال ، إذا كان لديك في مورد البرنامج النصي ، فلديك scriptText="Hello {{name}} {{lastname}}, welcome to {{location}}" ، يجب أن يكون الجمهور: {"name": "Elon", "lastname": "Musk", "location": "Istanbul"} . إذا لم يتم توفيره ، سيتم إنشاء مسار العودة.sync (Boolean) - السماح بمزامنة أو خلق الكلام غير المتزامن. الافتراضي True . إذا كان sync=False ، فسوف يعيد Cleant Create Call رسالة نجاح عند تشغيل إنشاء الكلام. لاسترداد الملفات ، تحقق من طريقة Speech.retrieve() .sections (DICT) - حدد المعلمات لأقسام محددة في البرنامج النصي. المفتاح هو اسم القسم ، والقيمة هي قاموس آخر مع تكوين القسم (المعلمات الصحيحة هي: الصوت ، السرعة ، التأثير ، silence_padding). إذا لم يتم العثور على قسم هنا ، فسوف يرث القسم تلقائيًا قيم الصوت والسرعة والتأثير و silence_padding التي حددتها أعلاه (أو تلك الافتراضية إذا لم تقدمها). انظر مثالًا أدناه مع قسمين ومعلمات التكوين المختلفة المستخدمة.useDictionary (Bool) - يطبق قاموس النطق على نص البرنامج النصي.useTextNormalizer (Bool) - يطبق تطبيع النص ، والذي يمكن أن يساعد في حل الأخطاء النحوية مع النطق TTS ، على سبيل المثال 11:12 UHR -> 11 UHR 12. ملاحظة - هذا يعمل فقط للأصوات الألمانية في الوقت الحاضر. sections = {
"firstsection" : {
"voice" : "Matthew" ,
"speed" : 110 ,
"silence_padding" : 100
},
"anothersection" : {
"voice" : "en-GB-RyanNeural" ,
"speed" : 100
}
}مثال بسيط:
response = apiaudio . Speech . create (
scriptId = "id-1234" ,
voice = "Joanna"
)مثال كامل:
response = apiaudio . Speech . create (
scriptId = "id-1234" ,
version = "abc" ,
voice = "Matthew" ,
speed = 100 ,
effect = "dark_father" ,
silencePadding = 1000 ,
sync = True ,
audience = { "username" : "Elon" , "lastname" : "Musk" },
sections = {
"firstsection" : {
"voice" : "Matthew" ,
"speed" : 110 ,
"silence_padding" : 100 ,
},
"anothersection" : {
"voice" : "Liam" ,
}
}
) retrieve() استرداد عناوين URL ملف الكلام.
حدود:
scriptId * [مطلوب] (سلسلة) - معرف البرنامج النصي الذي تريد استرداده.version (سلسلة) - إصدار البرنامج النصي ليتم استرجاعه. الافتراضي هو "".section (السلسلة) - اسم قسم البرنامج النصي الذي تريد استرداده. إذا لم يتم توفيرها ، فسيتم إرجاع جميع أقسام البرنامج النصي.parameters (DICT) - DICT التي تحتوي على معلمات التخصيص من البرنامج النصي الخاص بك. إذا لم يتم توفيره ، سيتم استرداد مسار العودة. يعتمد هذا الحقل على المعلمات التي استخدمتها في قسم موارد البرنامج النصي الخاص بك. لاسترداد مجموعة محددة من المعلمات ، تحتاج إلى إنشاء الكلام مع نفس مجموعة المعلمات.مثال:
audio_files = apiaudio . Speech . retrieve ( scriptId = "id-1234" ) download() قم بتنزيل ملفات الكلام في المجلد المفضل لديك.
حدود:
scriptId * [مطلوب] (سلسلة) - معرف البرنامج النصي الذي تريد تنزيلهversion (سلسلة) - إصدار البرنامج النصي الذي سيتم تنزيله. الافتراضي هو "".section (السلسلة) - اسم قسم البرنامج النصي الذي تريد استرداده. إذا لم يتم توفيرها ، فسيتم إرجاع جميع أقسام البرنامج النصي.parameters (DICT) - DICT التي تحتوي على معلمات التخصيص من البرنامج النصي الخاص بك. إذا لم يتم توفيره ، سيتم استرداد مسار العودة. يعتمد هذا الحقل على المعلمات التي استخدمتها في قسم موارد البرنامج النصي الخاص بك. لاسترداد مجموعة محددة من المعلمات ، تحتاج إلى إنشاء الكلام مع نفس مجموعة المعلمات.destination (سلسلة) - مسار الوجهة المجلد. الافتراضي هو "." (المجلد الحالي)مثال:
audio_files = apiaudio . Speech . download ( scriptId = "id-1234" , destination = "." )Voiceيسمح لك Voice باسترداد قائمة بالأصوات المتاحة من واجهة برمجة التطبيقات الخاصة بنا.
طرق الصوت هي:
list() سرد جميع الأصوات المتاحة في واجهة برمجة التطبيقات الخاصة بنا. المعلمات كلها اختيارية ، ويمكن استخدامها مجتمعة للحصول على صوت مثالي للاستعارة.
provider (سلسلة) - جرب واحد من: Google ، Polly ، Azure ، MSNR (Aflorithmic) ، IBM ، Yandex ، Retro (Aflorithmic) ، VocalId ، يشبهlanguage (سلسلة) - على سبيل المثال ، اللغة الإنجليزية ، الإسبانية ، الفرنسية ، الألمانية ، إلخ.accent (سلسلة) - على سبيل المثال ، أمريكية ، بريطانية ، محايدة ، برتغالية/برازيلية ، أمريكية ناعمة ، مكسيكية ، أستراليةgender (سلسلة) - جرب مع واحد من: ذكر ، أنثىageBracket (سلسلة) - جرب مع واحد من: البالغين ، الطفل ، كبيرtags (السلسلة)-حاول بواحد أو أكثر (مفصولة بفواصل) من: ثابت ، واثق ، متوازنة ، مفيدة ، خطيرة ، تعليمية ، بطيئة ، ورواية القصص ، الهدوء ، واضحة ، عميقة ، رسمية ، حزينة ، سريعة ، متفائلة ، متعة ، نشيطة ، متوترة للغاية ، مسطحة للغاية ، منخفضة ، ذات طفرات منخفضة ، غناء ، تعاوني ، نوع ، مستقيمة ، مستقرة ، على دراية ، مركزة ، مسيرة أخبار ، قائد إخباري ، مقابلة ، موثوقة ، ودية ، ترحيب ، جيد لتوزيع المعلومات ، ودية بعض الشيءindustryExamples (سلسلة) - جرب مع واحد أو أكثر (مفصولة بفواصل) من: اللياقة البدنية ، الأعمال ، التجارية ، الأزياء ، السفر ، المطبخ السمعي ، العقارات ، الإيمان ، صناعة الصحة ، comercial ، realestate ، الترفيه للأطفال ، ألعاب ، خدمة العملاء ، التعليم ، سرد القصص ، الترفيه ، الأطفال ، التعليم السمعي ، التعليمtimePerformance (سلسلة) - أداء الوقت للصوت. هناك ثلاث فئات: بطيئة ، متوسطة ، سريعة.sectionCharacterLimit (سلسلة) - الحد الأقصى لمقدار الأحرف التي يمكن للصوت معالجتها لكل قسم نصوص. جميع مقدمي الخدمات المدعومة باستثناء VocalId لديهم الحد الأقصى البالغ 4000. all_voices = apiaudio . Voice . list () french_voices = apiaudio . Voice . list ( language = "french" , tags = "steady, fun" ) list_parameters() تتيح لك هذه الطريقة معرفة السمات التي يمكنك تصفية الأصوات من خلالها ، إلى جانب القيم المسموح بها لكل سمة. يمكنك لاحقًا استخدام هذه المعلمات والقيم لتصفية الأصوات التي ترغب في إدراجها.
حدود:
مثال:
parameters = apiaudio . Voice . list_parameters ()Soundيتيح لك Sound تصميم قالب الصوت الخاص بك من برنامج نصي ومسار خلفية. من أجل الحصول على قالب/مشروع صوتي ، تأكد من طلب الكلام لمورد البرنامج النصي أولاً.
طرق الصوت هي:
list() سرد جميع قوالب الصوت المتاحة في API لدينا. المعلمات كلها اختيارية ، ويمكن استخدامها مجتمعة للحصول على الصوت المثالي للمساواة الخاصة بك.
industryExamples (سلسلة) - جرب مع واحد أو أكثر (مفصولة بفواصل) من: الأخبار ، السفر ، الأعمال ، الاسترخاء ، اللياقة ، الاسترخاء ، أطفال قصصcontents (سلسلة) - حاول بواحد أو أكثر (مفصولة بواسطة الفواصل) من: مقدمة ، رئيسي ، outro ، effect1 ، effect2 ، outro الرئيسية ، droid_main ، chewie_main ، effect3 ، الأجواء ، الآثار فقطgenre (سلسلة) - جرب مع واحد من: الإلكترونية ، الصوتية ، الغلاف الجوي ، التجريدي ، الصخرةtempo (سلسلة) - حاول مع واحد من: Mid ، Up ، Down ، Uptempotags (سلسلة) - حاول بواحد أو أكثر (مفصولة بفواصل) من: مكثفة ، الحد الأدنى ، العاكس ، اللحن ، سعيد ، الحنين ، التركيز ، النشط ، الارتفاع ، النشط ، الاسترخاء ، الأجواء ، الغموض ، الإيجابي ، المعلومات ، التمرين ، العمل ، التأمل ، السفر ، سيلنس كامل sound_templates = apiaudio . Sound . list () list_parameters() تتيح لك هذه الطريقة معرفة السمات التي يمكنك تصفية قوالب الصوت عبرها ، إلى جانب القيم المسموح بها لكل سمة. يمكنك لاحقًا استخدام هذه المعلمات والقيم لتصفية قوالب الصوت التي ترغب في إدراجها.
حدود:
مثال:
parameters = apiaudio . Sound . list_parameters ()Mastering المورديتيح لك Mastering إنشاء ملف صوتي متقن واسترداده. يحتوي الإصدار المتقدم على خطاب البرنامج النصي ، ومسار الخلفية ، والمعلمات الشخصية لجمهورك وعملية إتقان لتعزيز جودة الصوت للمسار بأكمله. من أجل الحصول على ملف صوتي متقن ، تأكد من طلب الكلام لمورد البرنامج النصي أولاً.
طرق إتقان هي:
create() قم بإنشاء إصدار متين من البرنامج النصي واختر تنسيق الصوت.
حدود:
scriptId * [مطلوب] (سلسلة) - معرف مورد البرنامج النصي.version (سلسلة) - إصدار البرنامج النصي المراد إنتاجه. الافتراضي هو "".soundTemplate (سلسلة) - اسم قالب الصوت. للحصول على قائمة قوالب الصوت المتاحة ، تحقق من استدعاء apiaudio.Sound.list_sound_templates() .public (منطقي) - العلم المنطقي الذي يسمح بتخزين الملف المتقدم في مجلد S3 العام. القيمة الافتراضية False . تحذير - سيؤدي ذلك إلى أن تكون ملفاتك المتقنة عامة لأي شخص في الإنترنت. استخدم هذا على مسؤوليتك الخاصة.vast (منطقية) - العلم المنطقي الذي يسمح بإنشاء ملف واسع للملف المتقدم. العلم vast يعمل فقط إذا كان public True . القيمة الافتراضية False .endFormat (قائمة) - قائمة بتنسيقات الصوت المراد إنتاجها. التنسيقات الصالحة هي: ["wav", "mp3" (default), "flac", "ogg", "mp3_very_low", "mp3_low", "mp3_medium", "mp3_high", "mp3_very_high", "mp3_alexa"]forceLength (int) - فرض طول الصوت للمسار المتقدم (بالثواني).audience (DICT) - القاموس الذي يحتوي على معلمات التخصيص. تعتمد هذه المعلمة على عدد المعلمات التي استخدمتها في مورد البرنامج النصي الخاص بك. في مثال وثائق البرنامج النصي أعلاه ، استخدمنا معلمتين: username location ، وفي المثال التالي أدناه ، نريد إنتاج البرنامج salih لاسم المستخدم مع موقع Barcelona . إذا لم يتم توفير الجمهور ، فسيتم إنشاء مسار العودة.mediaFiles (قائمة) - قائمة بالديكتات التي تحتوي على ملفات الوسائط. تعتمد هذه المعلمة على علامات ملف الوسائط المستخدمة في مورد البرنامج النصي وملفات الوسائط التي لديك في حسابك. على سبيل المثال ، إذا كان البرنامج النصي يحتوي على <<media::myrecording>> plus <<media::mysong>> ، وتريد إرفاق myRecording بـ mediaid = "12345" ، و mysong to mediaid = "67890" ثم mediaFiles = [{"myrecording":"12345", "mysong":"67890"}]mediaVolumeTrim (Float) - نقطة عائمة متغيرة تتيح لك تقليم حجم ملفات الوسائط التي تم تحميلها (في DB). تحتوي هذه السمة على نطاق صالح يتراوح بين 12 و 12 ديسيبل وتتطبق على جميع ملفات الوسائط المدرجة في مكالمة إتقان واحدة. لا يتم توفير حماية القطع ، لذا فإن إجراء تعديلات تدريجية فقط.connectors (القائمة) - قائمة الرسائل التي تحدد التكوين لاتصال الطرف الثالث معين. للحصول على إرشادات في سياق تطبيق الطرف الثالث المدعوم ، راجع وثائق الموصلات.masteringPreset (سلسلة) - المسبق المسبق للاستخدام ، وهذا يتيح ميزات مثل ضغط Sidechain "IE Ducking" انظر apiaudio.Mastering.list_presets() للحصول على قائمة الإعدادات المسبقة وأوصافها.share (منطقية) - إذا كنت ترغب في إنشاء رابط قابل للمشاركة مع ملف الصوت الخاص بك ، فاستخدم هذا العلامة. إذا وضعت share: True فسيتم إرجاع المعلمة shareUrl . (ملاحظة: إذا وضعت هذه العلامة ، فسيتم تحويل ملفاتك الخاصة إلى ملفات عامة.)مثال:
response = apiaudio . Mastering . create (
scriptId = "id-1234" ,
soundTemplate = "jakarta" ,
audience = { "username" : "salih" , "location" : "barcelona" }
) create_media_timeline() ينشئ طلب إتقان استنادًا إلى ملفات الوسائط التي تم تحميلها. ستحتاج ملفات الوسائط إلى تحميلها قبل استدعاء هذه الوظيفة. انظر وسائل الإعلام.
حدود:
timeline * [مطلوب] (قائمة) - كائن الجدول الزمني. كائن الجدول الزمني هو قائمة بالقواميس ، حيث يمثل كل منها مسارًا لملفات الصوت. يجب أن يحتوي كل مسار على files اثنين التاليين و contentType .
files * [مطلوب] (قائمة) الملفات هي قائمة بالقواميس ، حيث يجب أن يكون لكل إدخال المفاتيح الثلاثة التالية ، mediaId ، startAt و endAt
files * [مطلوب] (str) mediaid من الملف الذي تم تحميله.startAt * [مطلوب] (تعويم) الوقت الذي يجب أن يبدأ فيه ملف الوسائط هذا في ثوانٍ.endAt * [مطلوب] (تعويم) الوقت الذي يجب أن ينتهي به ملف الوسائط في ثوانٍ. contentType * [مطلوب] (سلسلة) - يجب أن يكون نوع المحتوى الذي يحتوي عليه هذا المسار ، إما sound أو speech
endFormat (قائمة) - قائمة بتنسيقات الصوت المراد إنتاجها. التنسيقات الصالحة هي: ["wav", "mp3" (default), "flac", "ogg", "mp3_very_low", "mp3_low", "mp3_medium", "mp3_high", "mp3_very_high", "mp3_alexa"]
masteringPreset (سلسلة) - المسبق المسبق للاستخدام ، وهذا يتيح ميزات مثل ضغط Sidechain "IE Ducking" انظر apiaudio.Mastering.list_presets() للحصول على قائمة الإعدادات المسبقة وأوصافها.
مثال:
backgroundId = apiaudio . Media . upload ( file_path = "background.wav" )[ "mediaId" ]
speechId = apiaudio . Media . upload ( file_path = "speech1.wav" )[ "mediaId" ]
timeline = [
{
"files" : [
{
"mediaId" : speechId ,
"startAt" : 2 ,
"endAt" : 14 ,
}
],
"contentType" : "speech"
},
{
"files" : [
{
"mediaId" : backgroundId ,
"startAt" : 0 ,
"endAt" : 45 ,
}
],
"contentType" : "sound"
}
]
response = apiaudio . Mastering . create_media_timeline ( timeline = timeline , masteringPreset = "lightducking" ) retrieve() استرداد عناوين URL للملف المتقدم.
حدود:
scriptId * [مطلوب] (سلسلة) - معرف مورد البرنامج النصي.versions (سلسلة) - إصدار البرنامج النصي الذي سيتم استرداده. الافتراضي هو "".parameters (DICT) - القاموس الذي يحتوي على عنصر الجمهور الذي تريد استرداده. إذا لم يتم توفير المعلمات ، فسيتم استرداد مسار العودة.public (منطقي) - العلم المنطقي الذي يسمح باسترداد الملف المتقدم من الدلو العام. استخدم هذا إذا كنت ترغب في استرداد ملف متين تم إنشاؤه باستخدام public=True . القيمة الافتراضية False .vast (منطقية) - العلم المنطقي الذي يسمح باسترداد الملف الشاسع للملف المتقدم. العلم vast يعمل فقط إذا كان public True . القيمة الافتراضية False .endFormat (قائمة) - قائمة بتنسيقات الصوت المراد استردادها. التنسيقات الصالحة هي: ["wav", "mp3" (default), "flac", "ogg", "mp3_very_low", "mp3_low", "mp3_medium", "mp3_high", "mp3_very_high", "mp3_alexa"]مثال:
mastered_files = apiaudio . Mastering . retrieve (
scriptId = "id-1234" ,
parameters = { "username" : "salih" , "location" : "barcelona" }
) download() قم بتنزيل الملفات المتقنة في المجلد المفضل لديك.
حدود:
scriptId * [مطلوب] (سلسلة) - معرف مورد البرنامج النصي.version (سلسلة) - إصدار البرنامج النصي الذي سيتم تنزيله. الافتراضي هو "".parameters (DICT) - القاموس الذي يحتوي على عنصر الجمهور الذي تريد استرداده. إذا لم يتم توفير المعلمات ، فسيتم تنزيل مسار العودة.destination (سلسلة) - مسار الوجهة المجلد. الافتراضي هو "." (المجلد الحالي)public (منطقي) - العلم المنطقي الذي يسمح باسترداد الملف المتقدم من الدلو العام. استخدم هذا إذا كنت ترغب في استرداد ملف متين تم إنشاؤه باستخدام public=True . القيمة الافتراضية False .vast (منطقية) - العلم المنطقي الذي يسمح باسترداد الملف الشاسع للملف المتقدم. العلم vast يعمل فقط إذا كان public True . القيمة الافتراضية False .مثال:
mastered_files = apiaudio . Mastering . download (
scriptId = "id-1234" ,
parameters = { "username" : "salih" , "location" : "barcelona" }
destination = "."
) list_presets() اذكر الإعداد المسبق المتاح.
مثال:
presets = apiaudio . Mastering . list_presets ()
print ( presets )Mediaتتيح لك الوسائط استرداد جميع الملفات المتوفرة في API.Audio لمؤسستك.
أساليب الوسائط هي:
upload() - تحميل الملفات إلى قواعد البيانات الخاصة بنا.
حدود:
file_path * [مطلوب] (سلسلة) - المسار النسبي إلى ملف الصوت.tags (السلسلة) - العلامات المنفصلة فاصلة تريد إضافتها إلى ملفك المحمّل. هذا سيجعل الاسترجاع أسهل.مثال:
apiaudio . Media . upload (
file_path = "./my_file.mp3" ,
tags = "tag1,tag2,tag3"
) list() - سرد جميع الملفات داخل org.
حدود:
mediaId (سلسلة) - إذا تم تمريرها ، ستعيد هذا الملف فقط ، أو كائن فارغ إذا لم يكن موجودًا.tags (السلسلة) - العلامات المنفصلة فاصلة تريد إضافتها إلى ملفك المحمّل. إذا تم تمريرها ، فسيقوم بإرجاع جميع الملفات التي تحتوي على هذه العلامات على الأقل.downloadUrl (Boolean): إذا كان ذلك صحيحًا ، يتم إضافة عنوان URL المقسم إلى كل عنصر على الصفيف. هذا بطيء بالنسبة لكمية كبيرة من الملفات (حوالي 1s لكل منهما).public (منطقي): إذا كان ذلك صحيحًا ، فإن ملفات الوسائط المدرجة ستكون ملفات الوسائط العامة التي توفرها API.Audio. الافتراضي كاذب.أمثلة:
# lists all files
files = apiaudio . Media . list ()
# lists files with tag="tag1"
files = apiaudio . Media . list ( tags = "tag1" )
# lists file with specific id
files = apiaudio . Media . list ( mediaId = "some_mediaId" )
# lists files with tag="tag1" and with a downloadurl
files = apiaudio . Media . list ( tags = "tag1" , downloadUrl = True ) list_tags() هذا يعيد قائمة مع جميع العلامات التي يحددها المستخدم الفريدة.
مثال:
tags = apiaudio . Media . list_tags ()
print ( tags ) get_download_url() - تقوم هذه الطريقة بإرجاع عنوان URL المقدم لتنزيل ملف صوتي محدد
mediaId * [مطلوب] (سلسلة): معرف الوسائط للملف ليتم تنزيلهمثال
url = apiaudio . Media . get_download_url ( mediaId = "some-mediaId" )
print ( url ) download() - تقوم هذه الطريقة بتنزيل ملف صوتي محدد
mediaId * [مطلوب] (سلسلة): معرف الوسائط للملف ليتم تنزيلهdestination (السلسلة): المسار إلى الدليل حيث سيتم تنزيل الملف. الافتراضي هو "."مثال
apiaudio . Media . download (
mediaId = "some_mediaId" ,
destination = "/my_destination_folder"
)SyncTTSيتيح لك Synctts القيام بنص نصي إلى كلام متزامن (TTS) مع واجهة برمجة التطبيقات الخاصة بنا باستخدام جميع الأصوات المتاحة. استخدمه لإنشاء ملف صوت الكلام من نص واسم صوتي. تحتوي الاستجابة على بايت موجة جاهزة للعب أو كتابة ملف.
طرق Synctts هي:
create() إنشاء ملف الكلام TTS.
حدود:
voice * [مطلوب] (سلسلة) - الاسم الصوتي. راجع قائمة الأصوات المتاحة باستخدام الموارد الصوتية.text * [مطلوب] (سلسلة) - النص الذي تريد القيام به TTS. الحد هو 800 حرف لملفات الموجة.metadata [اختيارية] ("كاملة" أو "لا شيء") - مستوى البيانات الوصفية التي تريدها. إرجاع قوائم Phoneme (متاحة فقط لبعض أصوات MSNR)مثال:
sync_tts = apiaudio . SyncTTS . create (
voice = "joanna" ,
text = "This is me creating synchronous text to speech" ,
metadata = "full"
)BirdcacheBirdcache هي خدمة تخزين مؤقت تقدمها API.Audio توفر طبقة التخزين المؤقت للعميل عن طريق تخزين البيانات في خوادم API.Audio للاستخدام في المستقبل. يتيح لك هذا استرداد ملفات الكلام الخاصة بك أثناء الطيران.
طرق Birdcache هي:
create() إنشاء ملف الكلام TTS.
حدود:
type * [مطلوب] (سلسلة) - نوع الحدث. الأنواع المدعومة هي mastering speech .text * [مطلوب] (سلسلة) - النص الذي تريد القيام به الكلام/إتقان. انظر مثال معلمات التخصيص.voice * [مطلوب] (سلسلة) - صوت لإنشاء الكلام.audience * [اختياري] (DICT) - كائن الزوج الرئيسي لمعلمات التخصيص. انظر المثال أدناه.soundTemplate [اختياري] (سلسلة) - قالب الصوت لإتقان الإنشاء. مطلوب فقط عندما يكون النوع يتقن.مثال:
birdcache = apiaudio . Birdcache . create (
type = "mastering" ,
voice = "linda" ,
text = "This is {{username|me}} creating synchronous text to speech" ,
audience = { "username" : [ "salih" , "sam" , "timo" ]},
soundTemplate = "electronic"
)Pronunciation Dictionaryفي كثير من الأحيان عند العمل مع TTS ، يمكن أن تفشل النماذج في نطق كلمات محددة بدقة ، على سبيل المثال العلامات التجارية والأسماء والمواقع بشكل شائع. كمحاولة أولى لإصلاح هذا ، قمنا بتقديم علم Lexi الخاص بنا ، والذي يعمل بطريقة مماثلة لـ SSML. على سبيل المثال ، فإن إضافة <! Peadar> بدلاً من Peadar (أحد مؤسسينا) إلى البرنامج النصي الخاص بك سيؤدي إلى إنتاج النموذج النطق البديل لهذا الاسم. هذا مفيد بشكل خاص في الحالات التي يمكن أن يكون فيها الكلمات نطقًا متعددة ، على سبيل المثال قراءة المدن "و" لطيفة ". في هذه الحالة ، سيضمن وضع <! reading> و <! nice> أن يتم نطقها بشكل صحيح ، بالنظر إلى البرنامج النصي:
" The city of <!nice> is a really nice place in the south of france."
إذا كان هذا الحل لا يعمل من أجلك ، فيمكنك بدلاً من ذلك الاستفادة من ميزة LEXI المخصصة (الخدمات الذاتية).
يمكن استخدام هذا لتحقيق أحد أمرين ، تصحيح الكلمات المفردة ، أو توسيع الاختصارات. على سبيل المثال ، يمكنك استبدال جميع أحداث كلمة aflorithmic بـ "AF Low Rhythmic" أو أحداث كلمة "BMW" مع "Bayerische Motoren Werke". يمكن توفير الكلمات البديلة كنص عادي أو تصوير IPA.
أساليب قاموس النطق هي:
list() يسرد القواميس المتاحة للجمهور وكلماتها
حدود:
noneمثال:
# returns a list of public dictionaries
dictionaries = apiaudio . Lexi . list () يسرد list_custom_dicts() القواميس المخصصة وكلماتها
حدود:
noneمثال:
# returns a list of custom dictionaries
types = apiaudio . Lexi . list_custom_dicts () register_custom_word يضيف كلمة جديدة إلى قاموس مخصص.
lang [مطلوب] (سلسلة) - عائلة اللغة ، على سبيل en أو es .dictionary - استخدم global لتسجيل كلمة على مستوى العالم.word [مطلوب] (سلسلة) - الكلمة التي سيتم استبدالهاreplacement [مطلوب] (سلسلة) - رمز الاستبدال. يمكن أن تكون إما سلسلة عادي أو رمز IPA.contentType [اختياري] (سلسلة) - يمكن أن يكون نوع المحتوى للاستبدال المقدم ، إما basic (افتراضيًا) أو ipa للبدائل الصوتية.specialization [اختياري] (سلسلة) - سيتم تطبيق الاستبدال المقدم بشكل افتراضي بغض النظر عن الصوت أو رمز اللغة أو المزود المقدم. ومع ذلك ، يمكن توفير حالات الحافة ، يمكن أن تكون هذه إما صالحة ؛ اسم المزود ، رمز اللغة (أي EN-GB) أو اسم الصوت. # correct the word sapiens
r = apiaudio . Lexi . register_custom_word ( word = "sapiens" , replacement = "saypeeoons" , lang = "en" )
print ( r ) لكل لغة ، يُسمح فقط بإدخال كلمة واحدة. ومع ذلك ، يمكن أن يكون لكل كلمة specializations متعددة. عندما يتم تسجيل كلمة أولاً ، يتم إنشاء specialization default دائمًا ، والذي سيتطابق مع ما يتم تمريره. لا ستقوم المكالمات اللاحقة بتخصصات مختلفة بتحديث التخصص المحدد إلا. يتم تحديد التقييم الدقيق الذي سيتم استخدامه بالترتيب التالي للتفضيل:
voice name > language dialect > provider name > default
على سبيل المثال ، سيتم اختيار بديل محدد للاسم الصوتي sara على بديل محدد للمزود azure .
list_custom_words() يسرد جميع الكلمات الواردة في القاموس المخصص.
حدود:
lang [مطلوب] (سلسلة) - عائلة اللغة ، على سبيل en أو es - استخدم global لسرد الكلمات اللاأسية اللغوية.
مثال:
# lists all words in the dictionary along with their replacements
words = apiaudio . Lexi . list_custom_words ( lang = "en" ) يمكن رؤية تأثير تطبيق قاموس النطق باستخدام script.preview() . انظر وثائق البرنامج النصي لمزيد من التفاصيل.
مثال:
text = """
The author of this repo has lived in two places in the
UK, <!Bude> and <!Bristol>
"""
r = apiaudio . Script . create ( scriptText = text )
scriptId = r [ "scriptId" ]
# preview the script in en-gb
preview = apiaudio . Script . preview ( scriptId = scriptId , voice = "Joanna" )
print ( preview )إجابة:
{ "preview" : "The author of this repo has lived in two places in the UK, bude and <phoneme alphabet= " ipa " ph= " ### " > bristol </phoneme>" } في هذا المثال ، سيتم تصوير Bristol للتأكد من أنه يتم نطقه بشكل صحيح ، ولكن بما أن Bude ليس في قوامنا ، فقد تركت كما هي. الرموز الدقيقة IPA للكلمات في قواماتنا الداخلية لدينا obsfuced.
Connector مورد يستخدم لمراقبة تكامل باتي الثالث. يمكن توزيع النتائج النهائية لاتفاق المورد على تطبيقات خارجية من خلال حقل connectors . انظر توثيق الموصلات. قائمة التطبيقات المدعومة حاليا:
الطرق المتاحة:
retrieve() بعد تسجيل موصل في API.Console ، استخدم هذه الطريقة للتحقق مما إذا كان الاتصال قد تم تحقيقه باستخدام بيانات الاعتماد المقدمة.
حدود:
name * [مطلوب] (سلسلة) - اسم الموصل المحدد في وحدة التحكم.مثال:
status = apiaudio . Connector . retrieve (
name = "julep"
) connection() تحقق من حالة الاتصال من خلال توفير connectionId يتم إرجاعها في استجابة إتقان.
حدود:
connection_id * [مطلوب] (سلسلة) - تم إرجاع ConnectionId عن طريق إتقان المورد.مثال:
status = apiaudio . Connector . connection (
connection_id = "af2fe14a-aa6b-4a97-b430-a072c38b11ff"
)Orchestratorيتم استخدام Orchestrator لجعل العمل مع مجموعة من الخدمات الصوتية سهلة مثل إرسال طلب API واحد. يتم تكوين كل مسار هنا بعناية لإنتاج جودة عالية وسهلة الوصول إلى الأصول الصوتية.
أساليب Orchestrator هي:
create_audio() ينشئ طلب خطاب بسيط TTS ويضيف قالب صوت إليه من خلال الإتقان.
حدود:
scriptText * [مطلوب] (Str) - نص لتوليف (TTS).soundTemplate (STR) - قالب الصوت للاستخدام.voice * [مطلوب] (Str) - اسم الصوت للاستخدام. create_three_sections() ينشئ طلب خطاب TTS مع 3 أقسام ويضيف قالب صوت إليه من خلال الإتقان.
حدود:
introText * [مطلوب] (STR) - نص لتوليفه في القسم المقدمة.mainText * [مطلوب] (STR) - نص لتوليفه في القسم الرئيسي.outroText * [مطلوب] (STR) - نص لتوليفه في قسم Outro.soundTemplate (STR) - قالب الصوت للاستخدام.voice * [مطلوب] (Str) - اسم الصوت للاستخدام. يجمع media_with_sound() بين ملف وسائط موجود مسبقًا (أي صوت مسجل مسبقًا) مع قالب صوت
حدود:
mediaId * [مطلوب] (Str) - MediaId من ملف الوسائط لاستخدامه كمدخل.soundTemplate * [مطلوب] (STR) - قالب الصوت للاستخدام.يوفر هذا SDK طريقة سهلة للتحقق من رؤوس أمان مكالمات Apiaudio Webhook. يوصى بشدة أن تتحقق من الرؤوس من أجل حماية الخادم الخاص بك من أي هجوم ضار.
الطريقة هي:
apiaudio . Webhooks . verify ( payload , sig_header , secret , tolerance ) سيعود صحيح إذا كان الرأس صالحًا ، وإلا فإنه سيثير خطأ. المعلمات لتمرير هي ؛ إن payload هي كائن الجسم الذي أرسله Apiaudio ، sig_header كونه X-Aflr-Secret في رؤوس الطلبات التي أرسلتها APIAUDIO ، secret كونك Secret Webhook Secret (يمكنك الحصول عليه في وحدة التحكم Apiaudio) tolerance هو التسامح في ثوانٍ لفحص الرأس ، الذي يتخلف عن 300 ثانية.
بشكل افتراضي ، يتم تسجيل التحذيرات الصادرة عن واجهة برمجة التطبيقات في إخراج وحدة التحكم. بالإضافة إلى ذلك ، يتم تسجيل بعض السلوكيات على مستوى المعلومات (على سبيل المثال "في التقدم ..." خلال أوقات معالجة أطول). يمكن التحكم في مستوى التسجيل من خلال الاختيار من المستويات القياسية في مكتبة logging بيثون.
apiaudio . set_logger_level ( "INFO" )
# apiaudio.set_logger_level("CRITICAL") - set the highest level to disable logs هناك خطاف ما قبل الالتزام الذي سيتم تشغيله قبل ارتكاب ملف. هذا للحفاظ على معايير الكود عالية. لتمكينه ، يجب أن make . ثم سيتم إعداد خطاف ما قبل الالتزام لـ GIT. هذا كل شيء! الآن في كل مرة قبل الالتزام ، سيتم تشغيلها لإخبارك بالمعايير.
إذا كنت تستخدم VSCODE لارتكاب الملفات ، فقد تصطدم بالأمر pre-commit command not found . هذا جيد ، فقط قم brew install pre-commit أو Manager Five Package من القائمة هنا.
إذا قمت بتصوير your pip version is old ، فما عليك سوى تجاهله واستخدم المحطة.
إذا كانت هناك مشكلة وكنت في عجلة من أمرك ، فيمكنك إضافة --no-verify في نهاية أمر الالتزام ، فسوف يتخطى خطافات ما قبل git commit -m 'your commit message' --no-verify ، على سبيل المثال
هذا المشروع مرخص بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا.