paint-brush
Fatige Siri dega non ou? Isit la nan yon ranje senppa@philhopkins
333 lekti
333 lekti

Fatige Siri dega non ou? Isit la nan yon ranje senp

pa Philip Hopkins6m2024/12/14
Read on Terminal Reader

Twò lontan; Pou li

Bat Apple ak Siri nan jwèt la nan transkripsyon ak voye tèks
featured image - Fatige Siri dega non ou? Isit la nan yon ranje senp
Philip Hopkins HackerNoon profile picture
0-item

Mwen te gen yon iPhone pou dis ane, e mwen renmen li. Kontrèman ak kèk moun, mwen reyèlman renmen Siri epi sèvi ak li souvan. Men apre dizan, Siri poko konprann ke lè li transkri tèks mwen yo, li ta dwe konnen non madanm mwen se pa Arawon, se Erin. Mwen padonnen aplikasyon lapawòl-a-tèks, ki gen anpil resous, men apre mwen te korije erè sa a yon fwa epi mwen te voye yon tèks revize, koreksyon sa a ta dwe estoke nan yon istwa koreksyon sou telefòn mwen an—yon ti fichye ki itilize pa yon pòs. -pwosesis transfòmatè modèl, ansanm ak lòt endikasyon, fè erè sa a anpil mwens chans. Mwen konnen ke yo rele diskou iPhone a nan tèks fonksyonalite Siri se twòp senplifye, men se ki jan timoun mwen yo panse a 'AI nan iPhone mwen an.'


Sistèm lapawòl-a-tèks souvan lite ak omofòn—mo ki son menm men ki gen diferan òtograf ak siyifikasyon. Erè sa yo ka fwistre, sitou lè yo afekte non pèsonèl oswa tèm souvan itilize. Kle a pou rezoud pwoblèm sa a se pa nan revizyon motè rekonesans lapawòl la men nan yon kouch pwosesis tèks ki lejè, apre-transcription ki adapte ak koreksyon itilizatè yo sou tan. Men kòd ki baze sou PyTorch mwen fèt pou adrese sa a.


Li super kontra ak fasil pou deplwaye sou yon telefòn apre konpile pou mobil. Mwen konnen ke dèyè Siri gen yon seri modèl chèn trè konplèks, kidonk kòd sa a ta ka itilize jis pou bay yon nouvo karakteristik kòm opinyon nan modèl sa yo, yon nòt ki ede pèsonalize transkripsyon an lè omofòn an patikilye leve. Men, li ta pi senp yo sèvi ak sa a kòm yon kouch pwosesis pòs.

Sa a pa oblije rete tann pou yon nouvo lage telefòn yo dwe deplwaye. Li ta fè lavi pi bon pou mwen nan pwochen aktyalizasyon Apple lage pou iPhone mwen an.

Lide debaz la

Apwòch sa a konsantre sou twa eleman prensipal:

  • Istwa Koreksyon: Sere koreksyon itilizatè anvan yo, bay priyorite mo itilizatè a te fikse klèman anvan yo.
  • Kontak souvan: Tracks mo oswa non yo itilize souvan, bay yon pi gwo chans pou moun ki pi souvan itilize yo.
  • Analiz kontèks: Itilize Pwosesis Langaj Natirèl (NLP) pou analize tèks ki antoure a pou jwenn endikasyon ki ede elimine omofòn yo.


Sistèm nan kalkile yon nòt chans pou chak kandida omofòn ki baze sou twa faktè sa yo epi chwazi koreksyon ki gen plis chans. Anba a se aplikasyon Python kase an seksyon ak eksplikasyon.

Chaje baz done omofòn yo

Premye etap la se kreye oswa chaje yon baz done omofòn. Sa yo se pè mo (oswa gwoup) ki gen anpil chans pou yo konfonn pandan transcription.


 # Homophones database homophones_db = { "Aaron": ["Erin"], "bare": ["bear"], "phase": ["faze"], "affect": ["effect"], }

Sa a se yon diksyonè senp kote kle a se mo ki mal transkri a, ak valè a se yon lis altènativ omofòn. Pou egzanp, "faz" ka konfonn ak "faze". Apre sa, baz done sa a pral mande lè yo rankontre yon mo ki pa klè.

Swiv Istwa Koreksyon

Kòd la swiv koreksyon itilizatè yo nan yon diksyonè kote chak kle se yon tiple (original_word, corrected_word) ak valè a se kantite fwa itilizatè a korije erè sa a.

Tracker istwa koreksyon

 # Correction history tracker correction_history = { ("phase", "Faye's"): 3, ("bear", "bare"): 2, }


Si itilizatè a korije "faz" nan "Faye a" twa fwa, sistèm nan priyorite koreksyon sa a pou pwochen transcriptions.

Kontak souvan

Yon lòt faktè ki enfliyanse seleksyon omofòn se konbyen fwa yo itilize yon mo an patikilye. Sa a ta ka non pèsonèl oswa tèm itilizatè a souvan tape.

 # Frequent contact tracker frequent_contacts = { "faye": 15, "phase": 5, "erin": 10, "aaron": 2, }

Sistèm nan bay plis pwa mo yo itilize souvan lè li deranje omofòn yo. Pa egzanp, si "faye" parèt 15 fwa men "phase" parèt sèlman 5 fwa, "faye" ap pito.

Analiz kontèks

Endikasyon kontèks yo ekstrè nan fraz ki antoure a pou rafine seleksyon an plis. Pou egzanp, si fraz la gen pwonon "li", sistèm nan ka favorize "Erin" sou "Aaron". soti nan transformateur enpòte tiyo

Chaje yon modèl NLP pou analiz kontèks

 from transformers import pipeline # Load an NLP model for context analysis context_analyzer = pipeline("fill-mask", model="bert-base-uncased") def detect_context(sentence): """Detect context-specific clues in the sentence.""" pronouns = ["he", "she", "his", "her", "their"] tokens = sentence.lower().split() return [word for word in tokens if word in pronouns]

Fonksyon sa a analize fraz la pou pwonon ki espesifik pou sèks oswa lòt endikasyon ki ta ka endike siyifikasyon mo a gen entansyon.

Kalkile rezilta chans pou yo

Yo bay chak kandida omofòn yon nòt chans ki baze sou:

  1. Koreksyon ki sot pase yo : Pi wo pwa (egzanp, 3x).
  2. Itilizasyon souvan : Mwayen pwa (egzanp, 2x).
  3. Matching Context : Pi ba pwa (egzanp, 1x).
 def calculate_likelihood(word, candidate, sentence): """Calculate a likelihood score for a homophone candidate.""" correction_score = correction_history.get((word, candidate), 0) * 3 frequency_score = frequent_contacts.get(candidate, 0) * 2 context = detect_context(sentence) context_clues = homophones_db.get(candidate, []) context_score = sum(1 for clue in context if clue in context_clues) return correction_score + frequency_score + context_score

Nòt sa a konbine twa faktè yo pou detèmine omofòn ki gen plis chans.

Disambiguating omofòn

Avèk nòt chans yo kalkile, sistèm nan chwazi omofòn ki gen nòt ki pi wo a.

 def prioritize_homophones(word, candidates, sentence): """Prioritize homophones based on their likelihood scores.""" likelihoods = { candidate: calculate_likelihood(word, candidate, sentence) for candidate in candidates } return max(likelihoods, key=likelihoods.get) def disambiguate_homophone(word, sentence): """Disambiguate homophones using likelihood scores.""" candidates = homophones_db.get(word, []) if not candidates: return word return prioritize_homophones(word, candidates, sentence)


Pwosesis sa a asire yo chwazi mo ki pi apwopriye a dapre istwa, frekans, ak kontèks.

Pwosesis Transkripsyon konplè

Sistèm nan trete yon fraz antye, aplike lojik dezabigwasyon an nan chak mo.

 def process_transcription(transcription): """Process the transcription to correct homophones.""" words = transcription.split() corrected_words = [disambiguate_homophone(word, transcription) for word in words] return " ".join(corrected_words)

Egzanp konplè Workflow

 # Example transcription and correction raw_transcription = "This is phase one plan." corrected_transcription = process_transcription(raw_transcription) print("Original Transcription:", raw_transcription) print("Corrected Transcription:", corrected_transcription) # Simulate user feedback update_correction_history("phase", "faye") print("Updated Correction History:", correction_history) print("Updated Frequent Contacts:", frequent_contacts)

Mete ajou Feedback

Lè itilizatè a korije yon erè, istwa koreksyon an ak kontak souvan yo mete ajou pou amelyore prediksyon nan lavni.


 def update_correction_history(original, corrected): """Update correction history and frequent contacts.""" correction_history[(original, corrected)] = correction_history.get((original, corrected), 0) + 1 frequent_contacts[corrected] = frequent_contacts.get(corrected, 0) + 1 frequent_contacts[original] = max(0, frequent_contacts.get(original, 0) - 1)

Egzanp transkripsyon ak koreksyon

 Original Transcription: This is phase one plan. Corrected Transcription: This is Faye's one plan. Updated Correction History: {('phase', 'Faye's'): 4} Updated Frequent Contacts: {'Faye's': 16, 'phase': 4}

Konklizyon

Kouch pwosesis tèks ki lejè sa a amelyore presizyon aplikasyon lapawòl-a-tèks lè li aprann nan koreksyon itilizatè yo, pwofite itilizasyon souvan, epi analize kontèks. Li se kontra enfòmèl ant ase yo kouri sou aparèy mobil ak adaptab a bezwen itilizatè endividyèl, ofri yon altènatif pi entelijan nan modèl tradisyonèl estatik. Avèk efò minim, Apple-oswa nenpòt lòt konpayi-te kapab entegre fonksyonalite sa a pou fè asistan vityèl tankou Siri pi reponn ak pèsonalize.