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

Patricia Arquette
Lepaskan: 2024-10-20 16:39:02
asal
892 orang telah melayarinya

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>"]
}
Salin selepas log masuk

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;
  }
});

Salin selepas log masuk

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();

Salin selepas log masuk

Popup.js

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

Salin selepas log masuk

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>

Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!