میخوامم ی اکستنشن تایپ صوتی در مرورگر بنویسم که  وقتی اکستنشن رو فعال میکنم اول از من بخاد تکس باکسی که قراره متن تبدیل شده در ویس به اون اضافه بشه رو انتخاب کنم و بعدش از من بخاد ویس خودم رو بفرستم و بعدش متن تبدیل شده اون ویس رو داخل تکست باکسی که انتخاب کرده بودم بزاره



میتونی از کد زیر ایده بگیره 
<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>تبدیل صدا به متن بیت و بایت</title>
    <style>
        .container {
            margin-bottom: 20px;
        }
        textarea {
            width: 100%;
            height: 100px;
            font-size: 16px;
            margin-top: 10px;
        }
    </style>
</head>
<body>
    <h1>تبدیل صدا</h1>

    <div class="container">
        <button id="start-record-btn1">شروع ضبط 1</button>
        <button id="clear-btn1">خالی کردن 1</button>
        <textarea id="output1" placeholder="متن 1 در اینجا نمایش داده می‌شود..."></textarea>
    </div>

    <div class="container">
        <button id="start-record-btn2">شروع ضبط 2</button>
        <button id="clear-btn2">خالی کردن 2</button>
        <textarea id="output2" placeholder="متن 2 در اینجا نمایش داده می‌شود..."></textarea>
    </div>

    <script>
        const outputs = [document.getElementById('output1'), document.getElementById('output2')];
        const startRecordBtns = [document.getElementById('start-record-btn1'), document.getElementById('start-record-btn2')];
        const clearBtns = [document.getElementById('clear-btn1'), document.getElementById('clear-btn2')];
        let recognitions = [null, null];

        const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;

        if (SpeechRecognition) {
            for (let i = 0; i < 2; i++) {
                recognitions[i] = new SpeechRecognition();
                recognitions[i].lang = 'fa-IR'; // تنظیم زبان فارسی
                recognitions[i].continuous = false; // غیرفعال‌سازی ضبط مداوم
                recognitions[i].interimResults = false; // غیرفعال‌سازی نتایج موقت

                // شروع ضبط صدا
                startRecordBtns[i].addEventListener('click', () => {
                    recognitions[i].start(); // شروع ضبط
                });

                // پردازش نتایج
                recognitions[i].onresult = (event) => {
                    let transcript = '';
                    for (let j = event.resultIndex; j < event.results.length; ++j) {
                        transcript += event.results[j][0].transcript + ' '; // افزودن متن به تکست باکس
                    }
                    // افزودن متن نهایی به تکست باکس
                    outputs[i].value += transcript; // ادامه متن
                };

                // مدیریت خطاها
                recognitions[i].onerror = (event) => {
                    outputs[i].value = 'خطا: ' + event.error;
                };
            }

            // اضافه کردن قابلیت خالی کردن متن
            clearBtns.forEach((btn, index) => {
                btn.addEventListener('click', () => {
                    outputs[index].value = ''; // خالی کردن محتوای تکست باکس
                });
            });
        } else {
            outputs.forEach(output => {
                output.placeholder = 'متاسفانه مرورگر شما از این ویژگی پشتیبانی نمی‌کند.';
            });
        }
    </script>
</body>
</html>