voice_title-1.0.0/js/voice_title.js

js/voice_title.js
(function (Drupal) {
  Drupal.behaviors.voiceTitleBehavior = {
    attach: function (context, settings) {
      if (context !== document) {
        return;
      }

      if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) {

        if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
          navigator.mediaDevices.getUserMedia({ audio: true })
            .then(function (stream) {
              initializeSpeechRecognition();
            })
            .catch(function (err) {
            });
        } else if (navigator.getUserMedia) {
          navigator.getUserMedia({ audio: true }, function (stream) {
            initializeSpeechRecognition();
          }, function (err) {
          });
        } else {
        }

        function initializeSpeechRecognition() {
          var recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
          recognition.continuous = false;
          recognition.lang = 'en-US';
          recognition.interimResults = false;

          recognition.onresult = function (event) {
            var transcript = event.results[0][0].transcript;
            console.log('Recognized text:', transcript);

            var titleField = document.querySelector('input[name="title[0][value]"]');
            if (titleField) {
              titleField.value = transcript;
              console.log('Title field updated:', transcript);
            } else {
            }
          };

          recognition.onerror = function (event) {
            console.error('Speech recognition error:', event.error);
          };

          var voiceTitleButton = document.getElementById('voice-title-btn');
          if (voiceTitleButton) {
            voiceTitleButton.addEventListener('click', function () {
              recognition.start();
            });
          }
        }

      } else {
      }
    }
  };
})(Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc