Taƙaitaccen Gudanarwa / Manyan Abubuwa
- Azure Batch Transcription API yana karɓar fayilolin audio har zuwa awanni 2.5 (WAV/MP3/OGG/FLAC), yana aiwatar da su ba tare da jiran ba, kuma yana mayar da
recognizedPhrasesJSON array tare danBest'yan takarar kowace jimloli, maki na amincewa, fitarwa mai daidaita rubutu baya (ITN), da zaɓi diarisation na mai magana — ba a buƙata haɗin streaming (Microsoft Azure, 2024).- Samfuran acoustic na neural na Microsoft sun rage ƙimar kuskuren kalma da kusan kashi 50% idan aka kwatanta da ainihin ƙirar da ta gabata na hidden Markov model (HMM) akan gwajin tattaunawa na Switchboard, suna kaiwa daidaituwa da masu rubuta wakilin ɗan adam a kan wannan bayanan a ~5.1% WER (Xiong et al., Microsoft Research, 2016/sabuntawa na 2021).
- Azure Text Analytics (yanzu wani ɓangare na Azure AI Language) yana aiki da rubutun transcript ta hanyar fitar da jimlolin mahimmai, gane abubuwa masu suna (NER), binciken ji tare da hakar ra'ayi, da gano harshe — duka a cikin kiran
analyze_sentimentkobegin_analyze_actionsguda ɗaya ta amfani da Python SDK.- CherryPy yana samar da yanar gizo: karkatar da URL, sarrafa loda multipart, sarrafa zama, da bayyana ƙirar Jinja2 a cikin tsarin Python na mafi ƙarancin yarda wanda zai iya gudana a kan VM mai rahusa guda ɗaya ba tare da ɗaukar nauyin tsarawa ba.
- Azure Translator NMT yana gano harshen tushe ta atomatik kuma yana fassara rubuce-rubuce zuwa kowane daga cikin yaruka 135 na manufa, yana ba da damar binciken NLP na ƙasa a kan rubutun asali da na fassara a cikin gudu ɗaya na pipeline.
Audio Analyser ⧉ wani aikace-aikace na Python na buɗe tushe wanda ke haɗa Azure Cognitive Services guda uku zuwa gudana guda ɗaya: Batch Transcription don speech-to-text, Azure AI Language (Text Analytics) don NLP, da Azure Translator don fitarwar yaruka da yawa. Ana ba da gidan yanar gizo ta CherryPy, kuma ana iya adana sakamakon zuwa JSON, rubutu mara tsari, ko bayanan bayanai na SQLite na gida.
Wannan labarin yana bayyana ginin fasaha na kowane matakin pipeline, kwantiragin Azure API, da zaɓuɓɓukan ƙira da aka yi a cikin yaduddukan CherryPy.
Yadda Audio Analyser ke Aiki: Bayyani na Ginin #
Pipeline yana da matakai biyar mabambanta:
- Loda — mai amfani yana mika fayil ɗin audio ta hanyar CherryPy web interface. CherryPy yana adana fayil a cikin kundin adireshi na wucin gadi kuma yana mayar da ID na aiki.
- Rubuta — Audio Analyser yana mika fayil zuwa Azure Batch Transcription REST API. Saboda rubuta a tarin ba tare da jiran ba, aikace-aikacen yana haɓaka matakin ƙarshen halin aiki a wurare kuma yana jiran halin
Succeededkafin ci gaba. - NLP — ana wuce rubutun transcript ɗin ɗan daji zuwa Azure AI Language don fitar da jimlolin mahimmai, NER, binciken ji, da gano harshe.
- Fassara (zaɓi) — idan an ƙayyade harshe na manufa, ana aika transcript zuwa Azure Translator, kuma ana sake gudanar da binciken NLP akan rubutun da aka fassara.
- Fitarwa — ana rubuta sakamakon zuwa tsarin fitarwa da aka zaɓa (JSON, TXT, ko SQLite) kuma ana bayyana a cikin CherryPy web UI.
Kawai dogayen waje da ke waje da laburaren ma'aunin Python sune azure-cognitiveservices-speech, azure-ai-textanalytics, azure-ai-translation-text, da cherrypy. Ana karanta duk sharuɗɗan Azure daga masu canji na muhalli.
Azure Cognitive Services: Injin Rubuta a Tarin #
Azure Speech service batch transcription API (/speechtotext/v3.0/transcriptions) yana karɓar nassoshi zuwa fayil ɗin audio a cikin Azure Blob Storage da jikin JSON na saiti. Audio Analyser yana loda fayil na gida zuwa Blob Storage ta amfani da URL na SAS da aka sa hannu kafin, sannan yana mika aikin rubuta.
Ƙaramin payload na gabatar da aiki:
{
"contentUrls": ["https://<account>.blob.core.windows.net/<container>/<file>.wav?<sas>"],
"locale": "en-US",
"displayName": "audio-analyser-job-001",
"properties": {
"diarizationEnabled": true,
"wordLevelTimestampsEnabled": true,
"punctuationMode": "DictatedAndAutomatic",
"profanityFilterMode": "Masked"
}
}
Array ɗin recognizedPhrases a cikin amsa yana ɗauke da abu ɗaya a kowace magana da aka gane. Kowane shigarwa yana ɗauke da:
nBest[0].confidence— float tsakanin 0 da 1nBest[0].lexical— kalmomi masu ɗan daji kamar yadda aka faɗanBest[0].itn— tsari mai daidaita rubutu baya (lambobi, kwanakin, kuɗi da aka fadada)nBest[0].display— an tsara don karantawa, tare da alamar rubutuspeaker— ID mai magana na lamba ta lissafi lokacin da aka kunna diarisation
Fine-tuning ɗin Custom Speech yana samuwa don kalmomin ƙamus na ɓangare. Loda kamus na furta ko corpus na daidaitawa (saitin jimlolin rubutu masu wakiltar ɓangare) yana daidaita samfurin harshe kuma zai iya rage WER sosai akan abubuwan da ke da ɗanɗano irin su sharuɗɗa na kuɗi ko kalmomi na likitanci.
Aiwatar da Harshe na Yanayi tare da Azure AI Language #
Bayan rubuta, Audio Analyser yana aika transcript na nuni zuwa Azure AI Language ta hanyar azure-ai-textanalytics Python SDK:
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
client = TextAnalyticsClient(
endpoint=os.environ["AZURE_LANGUAGE_ENDPOINT"],
credential=AzureKeyCredential(os.environ["AZURE_LANGUAGE_KEY"])
)
documents = [{"id": "1", "language": detected_lang, "text": transcript}]
sentiment_result = client.analyze_sentiment(documents, show_opinion_mining=True)
for doc in sentiment_result:
print(f"Sentiment: {doc.sentiment}")
print(f"Scores: pos={doc.confidence_scores.positive:.2f} "
f"neg={doc.confidence_scores.negative:.2f} "
f"neu={doc.confidence_scores.neutral:.2f}")
for sentence in doc.sentences:
for opinion in sentence.mined_opinions:
print(f" Target: {opinion.target.text}, "
f"Assessment: {[a.text for a in opinion.assessments]}")
keyphrases_result = client.extract_key_phrases(documents)
entities_result = client.recognize_entities(documents)
show_opinion_mining=True yana kunna ji na matakin ɓangare: API yana mayar da ba kawai polarity na matakin takardar ba amma kuma ma'aunan manufa-kimantawa na takamaiman (misali, target="ingancin audio", assessment="marasa kyau"). Wannan yana sa fitarwa ta taimaka wajen gano matsaloli na ainihi a cikin binciken kiran sabis na abokai.
Gane abubuwa masu suna yana rarraba fanɗo a matsayin ɗaya daga cikin: Person, Organization, Location, Event, Product, DateTime, Quantity, IP, URL, Email, PersonType, Skill, Address, PhoneNumber.
Goyan Bayan Yaruka da yawa ta hanyar Azure Translator #
Ana kira Azure Translator bayan gano harshe lokacin da mai amfani ya nemi harshe na manufa. Sabis yana goyan bayan yaruka 135 da yaruka na gida tare da fassarar inji na neural (NMT). Audio Analyser yana amfani da ƙarshen REST na /translate tare da autodetect a matsayin parameter na from, don haka ba a buƙata ƙayyadewa na harshen tushe:
import requests, uuid
url = "https://api.cognitive.microsofttranslator.com/translate"
params = {"api-version": "3.0", "to": target_lang}
headers = {
"Ocp-Apim-Subscription-Key": os.environ["AZURE_TRANSLATOR_KEY"],
"Ocp-Apim-Subscription-Region": os.environ["AZURE_TRANSLATOR_REGION"],
"Content-type": "application/json",
"X-ClientTraceId": str(uuid.uuid4())
}
body = [{"text": transcript}]
response = requests.post(url, params=params, headers=headers, json=body)
translated_text = response.json()[0]["translations"][0]["text"]
detected_language = response.json()[0]["detectedLanguage"]["language"]
Bayan fassara, Audio Analyser zaɓi yana sake gudanar da Text Analytics NLP akan rubutun da aka fassara don fitarwa ta jimlolin mahimmai da ji su samu a cikin harshen tushe da harshe na manufa.
Ana saita zaɓin tsarin fitarwa (JSON, TXT, SQLite) a lokacin fara. Fitarwar SQLite tana adana kowane zaman bincike a matsayin jeri tare da ginshiƙai don ID na aiki, lokaci, harshen tushe, transcript, transcript da aka fassara, maki na ji, da jimlolin mahimmai a matsayin blob JSON — yana ba da damar tambayoyin SQL a duk zaman.
CherryPy a matsayin Yaduddukan Gidan Yanar Gizo #
CherryPy yana taswirar hanyoyin URL zuwa hanyoyin Python ta amfani da mai sarrafawa bisa aji. Audio Analyser yana amfani da hanyoyi guda uku:
| Hanya | Hanya | Bayani |
|---|---|---|
GET / |
index() |
Yana bayyana tsarin loda |
POST /analyse |
analyse() |
Yana karɓar loda multipart, yana kunna pipeline, yana mayar da ID na aiki |
GET /results/<job_id> |
results() |
Yana haɓaka halin aiki; yana bayyana shafin sakamakon lokacin da ya kammala |
Ƙaramin saiti yana kiyaye ƙanƙancin ƙafar uwar garke:
import cherrypy
cherrypy.config.update({
"server.socket_host": "0.0.0.0",
"server.socket_port": 8080,
"tools.sessions.on": True,
"tools.sessions.timeout": 60
})
cherrypy.quickstart(AudioAnalyserApp(), "/", conf)
Halin zama yana riƙe ID na aiki na yanzu, tsarin fitarwa da aka zaɓa, da harshen fassara na manufa. Ma'ajin zaman da aka gina a cikin CherryPy yana ɗauke da fayil a matsayin tsoho, ba tare da buƙatar yaduddukan ajiya na waje ba.
Tambayoyin da ake Yawan Yinwa #
Waɗanne tsarukan audio da girman fayil Audio Analyser ke karɓa? Azure Batch Transcription API yana goyan bayan fayilolin WAV, MP3, OGG, da FLAC har zuwa awanni 2.5 a tsawo. Ya kamata a raba fayilolin da ke waje da wannan iyakar kafin a loda. Ana karɓar fayilolin stereo; ba a buƙata canza zuwa mono.
Yadda speaker diarisation ke aiki?
Saita diarizationEnabled: true a cikin buƙatar rubuta a tarin yana kunna ƙirar rabuwa ta mai magana na Azure. Kowane recognizedPhrase a cikin amsa yana ɗauke da filin lamba ta lissafi na speaker. Ƙirar tana gane masu magana ta hanyar halaye na acoustic kuma tana ba da IDs masu dacewa a cikin zama, amma ba ta gane wane masu magana ne ba tare da matakin ƙarawa na bayanai na muryar mai zaman kansa.
Shin ana adana fayilolin audio bayan rubuta? Ana loda fayilolin audio zuwa Azure Blob Storage tare da URL na SAS mai ɗan gajeren rayuwa kuma ana share su daga kundin adireshi na wucin gadi na gida bayan an kammala loda. Adanawa na blobs a Azure Blob Storage ya dogara da manufofin rayuwar kwantena; a tsoho, Audio Analyser baya saita manufofin share bayani, don haka ana ba da shawarar saita ƙaramin ƙa'idar TTL (misali, share blobs da suka wuce yini 1) a tashar Azure don amfani da samarwa.
Shin za a iya gudanar da binciken NLP ba tare da fassara ba?
Eh. Fassara wani matakin pipeline ne na zaɓi da aka sarrafa ta tutocin CLI na --target-lang ko jerin harshen manufa a cikin web UI. Lokacin da ba a zaɓi harshe na manufa ba, pipeline yana gudanar da speech-to-text da Text Analytics kawai.
Nassoshi #
- Microsoft. Batch transcription overview — Azure AI services. Microsoft Learn, 2024. https://learn.microsoft.com/en-us/azure/ai-services/speech-service/batch-transcription
- Xiong, W. et al. "Achieving Human Parity in Conversational Speech Recognition." Microsoft Research Technical Report, 2016; updated 2021. https://arxiv.org/abs/1610.05256
- Microsoft. What is Azure AI Language? Microsoft Learn, 2024. https://learn.microsoft.com/en-us/azure/ai-services/language-service/overview
- Microsoft. Azure AI Translator — Supported languages. Microsoft Learn, 2024. https://learn.microsoft.com/en-us/azure/ai-services/translator/language-support
Bita ta ƙarshe .
Bita ta ƙarshe .
