1001 Freelance Projects
Свежие проекты с фриланс-бирж
Сегодня: 21-Mar-2026 03:03 GMT
Просмотр проекта
Подробный просмотр проекта (вы будете перенаправлены на сторонний сайт)
Название проекта: Веб-приложение: распознавание речи в текст через Yandex SpeechKit
Кто разместил: Внешний проект с weblancer.net
Открыт: 22-Jun-2025 18:41 GMT
Описание: <p><b>Техническое задание: веб-приложение для распознавания речи в текст через Yandex SpeechKit</b></p><p> </p><p><b>? Описание задачи</b></p><p></p><p>Здравствуйте.</p><p> </p><p>Необходимо разработать простое веб-приложение, в котором пользователь может нажать на кнопку, записать голос с микрофона (в том числе с мобильного телефона), а затем получить распознанный текст. Распознавание должно происходить через облачный сервис <a href="https://cloud.yandex.com/ru/services/speechkit">Yandex SpeechKit</a>.</p><p> </p><p> </p><p><b>? Функциональные требования</b></p><p></p><ol><li><p>Фронтенд (React + Next.js):<br /> </p><ul><li><p>Одна страница.</p></li><li><p>Кнопка “Начать запись”, “Остановить запись”.</p></li><li><p>После записи — отправка аудио на бэкенд.</p></li><li><p>Отображение результата распознавания на экране.</p></li></ul></li><li><p></p></li><li><p>Бэкенд (Node.js + Express):<br /> </p><ul><li><p>Принимает аудиофайл от клиента.</p></li><li><p>Отправляет его в Yandex SpeechKit API.</p></li><li><p>Возвращает клиенту распознанный текст.</p></li><li><p>Использует переменные IAM_TOKEN и FOLDER_ID (через .env).</p></li></ul></li><li><p></p></li><li><p>Поддержка с мобильных устройств.<br /> </p><ul><li><p>Приложение должно работать с браузеров телефонов.</p></li><li><p>Запись должна работать с мобильного микрофона.</p></li></ul></li><li><p></p></li></ol><p> </p><p></p><p> </p><p><b>?? Технические детали</b></p><p> </p><p>Формат аудио: WAV или PCM, 16 или 48 kHz, mono</p><p> </p><p>Язык распознавания: ru-RU</p><p> </p><p>Режим: однократная запись (не потоковая)</p><p> </p><p></p><p> </p><p></p><p> </p><p></p><p> </p><p></p><p> </p><p><b>? Структура проекта</b></p><p> </p><p></p><p> </p><p>/</p><p> </p><p>??? frontend (Next.js)</p><p> </p><p>?   ??? pages/index.js</p><p> </p><p>??? backend (Node.js)</p><p> </p><p>    ??? index.js</p><p> </p><p>    ??? .env</p><p> </p><p></p><p> </p><p></p><p> </p><p></p><p> </p><p></p><p> </p><p><b>? Фронтенд — </b></p><p> </p><p><b>pages/index.js</b></p><p> </p><p></p><p> </p><p>npm install react-media-recorder axios</p><p> </p><p>import { ReactMediaRecorder } from "react-media-recorder";</p><p> </p><p>import axios from "axios";</p><p> </p><p></p><p> </p><p>export default function Home() {</p><p> </p><p>  const sendAudioToBackend = async (blob) =&gt; {</p><p> </p><p>    const formData = new FormData();</p><p> </p><p>    formData.append("audio", blob, "audio.wav");</p><p> </p><p></p><p> </p><p>    const response = await axios.post("http://localhost:5000/recognize", formData, {</p><p> </p><p>      headers: { "Content-Type": "multipart/form-data" },</p><p> </p><p>    });</p><p> </p><p></p><p> </p><p>    alert("Результат: " + response.data.result);</p><p> </p><p>  };</p><p> </p><p></p><p> </p><p>  return (</p><p> </p><p>    &lt;div style={{ textAlign: "center", marginTop: 100 }}&gt;</p><p> </p><p>      &lt;h2&gt;? Распознавание речи&lt;/h2&gt;</p><p> </p><p>      &lt;ReactMediaRecorder</p><p> </p><p>        audio</p><p> </p><p>        render={({ startRecording, stopRecording, mediaBlobUrl }) =&gt; (</p><p> </p><p>          &lt;&gt;</p><p> </p><p>            &lt;button onClick={startRecording}&gt;? Начать запись&lt;/button&gt;</p><p> </p><p>            &lt;button onClick={() =&gt; stopRecording()}&gt;? Остановить&lt;/button&gt;</p><p> </p><p>            {mediaBlobUrl &amp;&amp; (</p><p> </p><p>              &lt;audio</p><p> </p><p>                src={mediaBlobUrl}</p><p> </p><p>                controls</p><p> </p><p>                onEnded={() =&gt; {</p><p> </p><p>                  fetch(mediaBlobUrl)</p><p> </p><p>                    .then((res) =&gt; res.blob())</p><p> </p><p>                    .then(sendAudioToBackend);</p><p> </p><p>                }}</p><p> </p><p>              /&gt;</p><p> </p><p>            )}</p><p> </p><p>          &lt;/&gt;</p><p> </p><p>        )}</p><p> </p><p>      /&gt;</p><p> </p><p>    &lt;/div&gt;</p><p> </p><p>  );</p><p> </p><p>}</p><p> </p><p></p><p> </p><p></p><p> </p><p></p><p> </p><p></p><p> </p><p><b>? Бэкенд — </b></p><p> </p><p><b>index.js</b></p><p> </p><p></p><p> </p><p>npm init -y</p><p> </p><p>npm install express multer axios cors dotenv</p><p> </p><p>const express = require("express");</p><p> </p><p>const multer = require("multer");</p><p> </p><p>const cors = require("cors");</p><p> </p><p>const axios = require("axios");</p><p> </p><p>require("dotenv").config();</p><p> </p><p></p><p> </p><p>const app = express();</p><p> </p><p>const upload = multer();</p><p> </p><p>app.use(cors());</p><p> </p><p></p><p> </p><p>app.post("/recognize", upload.single("audio"), async (req, res) =&gt; {</p><p> </p><p>  try {</p><p> </p><p>    const response = await axios.post(</p><p> </p><p>      "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize",</p><p> </p><p>      req.file.buffer,</p><p> </p><p>      {</p><p> </p><p>        headers: {</p><p> </p><p>          Authorization: `Bearer ${process.env.IAM_TOKEN}`,</p><p> </p><p>          "Content-Type": "application/octet-stream",</p><p> </p><p>        },</p><p> </p><p>        params: {</p><p> </p><p>          folderId: process.env.FOLDER_ID,</p><p> </p><p>          lang: "ru-RU",</p><p> </p><p>          format: "lpcm",</p><p> </p><p>          sampleRateHertz: 48000,</p><p> </p><p>        },</p><p> </p><p>      }</p><p> </p><p>    );</p><p> </p><p></p><p> </p><p>    res.json({ result: response.data.result });</p><p> </p><p>  } catch (error) {</p><p> </p><p>    console.error(error.response?.data || error.message);</p><p> </p><p>    res.status(500).json({ error: "Ошибка распознавания" });</p><p> </p><p>  }</p><p> </p><p>});</p><p> </p><p></p><p> </p><p>app.listen(5000, () =&gt; console.log("Бэкенд запущен на http://localhost:5000"));</p><p> </p><p></p><p> </p><p><b>? </b></p><p> </p><p><b>.env</b></p><p> </p><p></p><p> </p><p>IAM_TOKEN=ваш_IAM_токен</p><p> </p><p>FOLDER_ID=ваш_folder_id</p><p></p><p> </p><p><b>? Что от вас требуется:</b></p><ul><li><p>Сделать полностью рабочий фронт и бэк (с учётом CORS и .env)</p></li><li><p>Убедиться, что работает с телефонов</p></li><li><p>Сделать простый чистый UI с кнопками</p></li><li><p>Выдать исходный код + инструкцию запуска (README.md)</p></li></ul><p></p><p> </p><p><b>? Как будет использоваться:</b></p><p></p><p></p><p>Прототип для внутреннего использования и будущей мобильной версии (на Flutter).</p><p> </p><p></p><p> </p>
Project ID: 4770950
Категория проекта:
Бюджет проекта:
Подробный просмотр проекта (вы будете перенаправлены на сторонний сайт)
Последние проекты / Все проекты
  Проект Открыт
Яндекс директ для двух сайтов (для всех)
Категория: Реклама и Маркетинг, Яндекс Директ
20-Mar-2026
18:33 GMT
расшифровка интервью
Категория: Тексты, Расшифровка аудио и видеозаписей
20-Mar-2026
18:33 GMT
2-х уровневый подземный паркинг под многоквартирным жилым домом
Категория: Дизайн, Архитектура
20-Mar-2026
18:32 GMT
Разработка интерактивных веб-страниц / мини-сайтов для мероприятий и онлайн-активностей.
Категория: Сайты, Веб-программирование
20-Mar-2026
18:32 GMT
Поиск сотрудника и введение hr-отдела
Категория: Аутсорсинг и консалтинг, Менеджер по персоналу
20-Mar-2026
15:53 GMT
ИИ агент для психотерапевта
Категория: AI — искусственный интеллект, N8n
20-Mar-2026
15:53 GMT
Дизайн слайдов и рич-контента для карточки Озон
Категория: Дизайн, Дизайн для маркетплейсов
20-Mar-2026
15:46 GMT
Центр сертификации на Debian, выдача сертификатов для веб-сервера
Категория: Автоматизация бизнеса, Интеграция по API
20-Mar-2026
15:44 GMT
Лендинг
Категория: Сайты, Лендинги
Бюджет: 5 000 руб
20-Mar-2026
15:43 GMT
Тредуется переводчик для перевода только из (США или Европы)
Категория: Тексты, Художественный перевод
Бюджет: 10 000 руб
20-Mar-2026
15:38 GMT
Ищем Frontend разработчика со знанием Gsap
Категория: Программирование, Веб-программирование
20-Mar-2026
15:28 GMT
Креатор, сценарист вирусных роликов в г. Москва
Категория: Реклама и Маркетинг, Креатив
20-Mar-2026
15:26 GMT
Ведение групп тг и ВК.
Категория: Социальные сети, Telegram
Бюджет: 10 000 руб, для всех
20-Mar-2026
15:14 GMT
Доделать сайт на конструкторе Яндекс Кит
Категория: Сайты, Доработка сайтов
20-Mar-2026
15:03 GMT
Сбор Телеграм ЛПРов в онлайн школах (базу компаний предоставлю)
Категория: Реклама и Маркетинг, Продажи и генерация лидов
20-Mar-2026
14:59 GMT
Все проекты
Проекты по навыкам ...
Проекты 'android'
Проекты 'ajax'
Проекты 'asp'
Проекты 'aspnet'
Проекты 'cms'
Проекты 'cpp'
Проекты 'csharp'
Проекты 'css'
Проекты 'delphi'
Проекты 'design'
Проекты 'drupal'
Проекты 'excel'
Проекты 'facebook'
Проекты 'flash'
Проекты 'html'
Проекты 'java'
Проекты 'javascript'
Проекты 'joomla'
Проекты 'iphone'
Проекты 'mysql'
Проекты 'photoshop'
Проекты 'php'
Проекты 'python'
Проекты 'ruby'
Проекты 'seo'
Проекты 'sql'
Проекты 'sysadm'
Проекты 'translate'
Проекты 'typing'
Проекты 'twitter'
Проекты 'vbnet'
Проекты 'xml'
Проекты 'wordpress'
Проекты 'writing'
Проекты 'texts'
Читать RSS-ленты ... Новое!
Проекты 'android'
Проекты 'ajax'
Проекты 'asp'
Проекты 'aspnet'
Проекты 'cms'
Проекты 'cpp'
Проекты 'csharp'
Проекты 'css'
Проекты 'delphi'
Проекты 'design'
Проекты 'drupal'
Проекты 'excel'
Проекты 'facebook'
Проекты 'flash'
Проекты 'html'
Проекты 'java'
Проекты 'javascript'
Проекты 'joomla'
Проекты 'iphone'
Проекты 'mysql'
Проекты 'photoshop'
Проекты 'php'
Проекты 'python'
Проекты 'ruby'
Проекты 'seo'
Проекты 'sql'
Проекты 'sysadm'
Проекты 'translate'
Проекты 'typing'
Проекты 'twitter'
Проекты 'vbnet'
Проекты 'xml'
Проекты 'wordpress'
Проекты 'writing'
Проекты 'texts'
Новое!
Projects in English
Длинный URL:
www.1001freelanceprojects.ru
Мобильная версия:
m.1001fp.ru
Copyright © 2005-2025 1001 Freelance Projects