Rumah  >  Artikel  >  hujung hadapan web  >  Perlukan Bantuan dengan Sambungan Penyemak Imbas Transkripsi Langsung Saya – Tidak Berfungsi

Perlukan Bantuan dengan Sambungan Penyemak Imbas Transkripsi Langsung Saya – Tidak Berfungsi

Patricia Arquette
Patricia Arquetteasal
2024-10-20 16:39:02893semak imbas

Need Help with My Live Transcription Browser Extension – Not Working

Hello semua,

Saya telah mengusahakan sambungan penyemak imbas yang harus menyalin langsung mana-mana video yang dimainkan dalam penyemak imbas menggunakan API Pengecaman Pertuturan. Walau bagaimanapun, saya menghadapi isu di mana ia tidak berfungsi seperti yang dijangkakan—transkripsi tidak dipaparkan dan saya tidak pasti sebabnya.

Apa yang Saya Lakukan Setakat Ini:
Manifest.json: Saya telah menyediakan kebenaran untuk menangkap audio dan menjalankan skrip yang diperlukan.
Background.js: Skrip latar belakang bertanggungjawab untuk menangkap audio menggunakan chrome.tabCapture.
ContentScript.js: Saya menggunakan Web Speech API (SpeechRecognition) untuk memproses audio yang ditangkap dan menyalinnya.
Popup.js: Popup sepatutnya memaparkan transkripsi langsung.
Saya telah menguji sambungan pada penyemak imbas Brave dan Chrome, tetapi transkripsi masih tidak berfungsi.
Fail Utama:
Manifest.json

{
  "manifest_version": 3,
  "name": "Live Transcription Extension",
  "version": "1.0",
  "description": "A browser extension for live transcription",
  "permissions": [
    "audioCapture",
    "activeTab",
    "storage",
    "tabCapture",
    "microphone"
  ],
  "action": {
    "default_popup": "popup.html"
  },
  "background": {
    "service_worker": "background.js"
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["contentScript.js"]
    }
  ],
  "host_permissions": ["<all_urls>"]
}

latar belakang.js

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  if (message.action === "start_transcription") {
    chrome.tabCapture.capture({ audio: true, video: false }, (stream) => {
      if (chrome.runtime.lastError || !stream) {
        console.error("Error capturing audio: ", chrome.runtime.lastError);
        sendResponse({ error: "Failed to capture audio" });
        return;
      }

      sendResponse({ stream });
    });
    return true;
  }
});

ContentScript.js

const startSpeechRecognition = () => {
  const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
  if (!SpeechRecognition) {
    console.error("Speech Recognition API not supported.");
    return;
  }

  const recognition = new SpeechRecognition();
  recognition.continuous = true;
  recognition.interimResults = true;
  recognition.lang = "en-US";

  recognition.onresult = (event) => {
    let finalTranscript = '';
    for (let i = event.resultIndex; i < event.results.length; ++i) {
      if (event.results[i].isFinal) {
        finalTranscript += event.results[i][0].transcript;
      }
    }
    chrome.runtime.sendMessage({ action: 'transcribe', text: finalTranscript });
  };

  recognition.onerror = (event) => {
    console.error("Speech recognition error: ", event.error);
  };

  recognition.start();
};

startSpeechRecognition();

Popup.js

chrome.runtime.onMessage.addListener((message) => {
  if (message.action === 'transcribe') {
    const transcriptionDiv = document.getElementById('transcription');
    transcriptionDiv.innerText += ` ${message.text}`;
  }
});

Timbul.html

<!DOCTYPE html>
<html>
<head>
  <title>Live Transcription</title>
</head>
<body>
  <h1>Live Transcription</h1>
  <div id="transcription">
    Transcription will appear here...
  </div>
  <script src="popup.js"></script>
</body>
</html>

Masalahnya:
Sambungan dimuatkan dengan baik, tetapi tiada apa yang berlaku apabila saya cuba menyalin video.
Tiada transkripsi muncul dalam pop timbul dan saya tidak nampak sebarang ralat yang jelas dalam konsol Chrome.
Saya juga cuba menjalankan sambungan pada Brave, dan saya masih mendapat hasil yang sama.
Apa yang Saya Cuba:
Menyemak API SpeechRecognition pada penyemak imbas—nampaknya disokong.
Memberikan kebenaran mikrofon kepada sambungan.
Mengesahkan bahawa skrip latar belakang menangkap audio, tetapi ia nampaknya tidak mencetuskan transkripsi.
Cuba menguji sambungan secara tempatan dan pada pengeluaran, tetapi ia tidak membuat perbezaan.
Isu Berkemungkinan:
Kebenaran mikrofon: Adakah terdapat masalah dengan cara saya meminta kebenaran untuk menangkap audio?
API Pengecaman Pertuturan: Mungkinkah terdapat masalah keserasian dengan penyemak imbas atau ada sesuatu yang menghalang pengecaman pertuturan?
Pengendalian transkripsi: Saya tidak pasti sama ada peristiwa hasil dalam proses Pengecaman Pertuturan dicetuskan dengan betul atau jika mesej tidak sampai ke pop timbul.
Sebarang bantuan atau nasihat akan sangat dihargai! Saya terperangkap dalam perkara ini untuk beberapa lama dan ingin memastikan ini berfungsi.

Terima kasih terlebih dahulu!

Atas ialah kandungan terperinci Perlukan Bantuan dengan Sambungan Penyemak Imbas Transkripsi Langsung Saya – Tidak Berfungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn