Функция преобразования речи в текст ReactJS сегодня является распространенным вариантом использования разработчиками. Будь то для общего использования или доступности, потребность в преобразовании речи в текст в ваших проектах — это то, что, скорее всего, возникнет в тот или иной момент, и это функция, которую мы, как разработчики, должны быть готовы реализовать в наших приложениях.
import React, { useState, useEffect } from 'react'; const DictationApp = () => { const [transcription, setTranscription] = useState(''); const [isListening, setIsListening] = useState(false); useEffect(() => { const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; const recognition = new SpeechRecognition(); recognition.continuous = true; recognition.interimResults = true; recognition.lang = 'en-US'; recognition.addEventListener('result', e => { let interimTranscript = ''; let finalTranscript = ''; for (let i = e.resultIndex, len = e.results.length; i < len; i++) { const transcript = e.results[i][0].transcript; if (e.results[i].isFinal) finalTranscript += transcript; else interimTranscript += transcript; } setTranscription(finalTranscript + interimTranscript); }); return () => recognition.removeEventListener('result', () => {}); }, []); const startListening = () => { recognition.start(); setIsListening(true); } const stopListening = () => { recognition.stop(); setIsListening(false); } return ( <div> <button onClick={startListening} disabled={isListening}>Start</button> <button onClick={stopListening} disabled={!isListening}>Stop</button> <p>{transcription}</p> </div> ); }; export default DictationApp;
Этот код создает простой компонент React с двумя кнопками для запуска и остановки прослушивания и элементом p для отображения транскрипции. Ловушка useEffect используется для настройки объекта SpeechRecognition и прослушивателя событий для события результата, которое запускается всякий раз, когда служба распознавания речи возвращает результат. Функции startListening и stopListening используются для запуска и остановки службы распознавания, а переменная состояния транскрипции обновляется с помощью окончательной и промежуточной расшифровок.