Skip to content
Home » Javascript 음성 녹음 | 자바스크립트 – 음성을 텍스트로 변환해 보기 110 개의 가장 정확한 답변

Javascript 음성 녹음 | 자바스크립트 – 음성을 텍스트로 변환해 보기 110 개의 가장 정확한 답변

당신은 주제를 찾고 있습니까 “javascript 음성 녹음 – 자바스크립트 – 음성을 텍스트로 변환해 보기“? 다음 카테고리의 웹사이트 https://hu.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://hu.taphoamini.com/photos/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 개발자의품격 이(가) 작성한 기사에는 조회수 1,339회 및 좋아요 22개 개의 좋아요가 있습니다.

Table of Contents

javascript 음성 녹음 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 자바스크립트 – 음성을 텍스트로 변환해 보기 – javascript 음성 녹음 주제에 대한 세부정보를 참조하세요

[개발자의 품격] 품격 있는 개발자 되기!
자바스크립트 Web Speech API를 이용하여, 음성 메시지를 텍스트로 변환해 보는 코드를 구현해 보도록 하겠습니다.
코드 다운로드 : https://github.com/seungwongo/dev_dignity

javascript 음성 녹음 주제에 대한 자세한 내용은 여기를 참조하세요.

[자바스크립트] 마이크 음성 소리 녹음 방법 : MediaRecorder

별도 라이브러리 없이, 자바스크립트만으로 마이크로 입력 받는 오디오를 녹음하는 방법을 정리한다. 대략 아래와 같은 순서로 진행하면 된다. 1.

+ 여기에 보기

Source: curryyou.tistory.com

Date Published: 3/12/2021

View: 1221

[JavaScript] recordrtc 라이브러리 단순 음성 녹음 사용 방법

WebRTC-Experiment.com/RecordRTC.js”;>. 미디어 스트림 받아오기. 우선 필요한 것은 브라우저에 미디어 스트림을 사용할 수 있도록 요청을 …

+ 여기에 자세히 보기

Source: blog.naver.com

Date Published: 4/4/2021

View: 2370

자바스크립트 예제: 마이크 테스트 – BGSMM

여기서 사용자가 허용 버튼을 눌러야 이후 녹음 작업이 진행이 됩니다. 이 부분은 navigator.mediaDevices.getUserMedia(constraints).th.

+ 여기에 표시

Source: yoonbumtae.com

Date Published: 1/12/2022

View: 5043

react로 음성 녹음 기능을 구현해보자 – velog

친구들과 프로젝트를 하던 중, 음성녹음 기능을 필요로 하는 웹을 구현 … webkitAudioContext)(); // 자바스크립트를 통해 음원의 진행상태에 직접 …

+ 여기를 클릭

Source: velog.io

Date Published: 1/16/2021

View: 5861

오디오 녹음/저장 – P5.js

사운드를 녹음하고 재생한 뒤, 클라이언트 컴퓨터에 .wav 파일로 저장하세요. 이 예제에서는 총 세 개의 객체가 필요합니다: p5.AudioIn(마이크/사운드 소스), p5.

+ 여기에 자세히 보기

Source: p5js.org

Date Published: 4/12/2022

View: 1053

웹 음성녹음 솔루션 : 키위 보이스 레코더 – 키위소프트 | Kiwisoft

HTML5,JavaScript 기반으로 웹 서버 OS 및 웹 사이트 제작 언어에 상관 없이 음성 녹음 서비스를 구축하여 운영 할 수 있습니다. 음성 녹음은 mp3파일로 녹음되며 녹음 …

+ 여기에 표시

Source: www.kiwisoft.kr

Date Published: 8/22/2021

View: 9524

웹 음성녹음 솔루션 ‘키위 보이스 레코더’

HTML5, JavaScript 기반으로 웹 서버 OS 및 웹 사이트 제작 언어에 상관 없이 음성 녹음 서비스를 구축하여 운영 할 수 있습니다. * 음성 녹음은 mp3 …

+ 더 읽기

Source: kiwinote.tistory.com

Date Published: 10/6/2021

View: 3056

[자바스크립트, html] 화면 녹화, 녹음하기 – 블로그 홈 – 티스토리

크롬에서 띄운 화면을 녹화하고, 마이크 음성 및 컴퓨터에서 재생되고 있는 소리까지 녹음한다. 처음에 해상도를 지정하지 않고 녹화했을 때 저장되는 …

+ 여기에 보기

Source: yong0810.tistory.com

Date Published: 1/15/2021

View: 4982

javascript로 마이크 접근 권한을 얻어 stream 데이터를 받아 …

javascript로 마이크 접근 권한을 얻어 stream 데이터를 받아왔습니다. … 사용자에게서 오디오 녹음 | Web | Google Developers. DEVELOPERS.GOOGLE.COM.

+ 더 읽기

Source: www.facebook.com

Date Published: 6/9/2022

View: 918

주제와 관련된 이미지 javascript 음성 녹음

주제와 관련된 더 많은 사진을 참조하십시오 자바스크립트 – 음성을 텍스트로 변환해 보기. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

자바스크립트 - 음성을 텍스트로 변환해 보기
자바스크립트 – 음성을 텍스트로 변환해 보기

주제에 대한 기사 평가 javascript 음성 녹음

  • Author: 개발자의품격
  • Views: 조회수 1,339회
  • Likes: 좋아요 22개
  • Date Published: 2020. 4. 20.
  • Video Url link: https://www.youtube.com/watch?v=-wL6hvnuTDc

[자바스크립트] 마이크 음성 소리 녹음 방법 : MediaRecorder

별도 라이브러리 없이,

자바스크립트만으로 마이크로 입력 받는 오디오를 녹음하는 방법을 정리한다.

대략 아래와 같은 순서로 진행하면 된다.

1. 마이크 소리 입력: MediaStream

2. 입력된 소리 녹음: MediaRecorder

3. 녹음된 소리 재생: Blob, Audio

마이크 음성 녹음의 원리를 알기 위해서는

MediaStream, MediaRecorder, Blob 등에 대해 알아두면 좋다.

▼이에 대해서는 아래 글을 참고하자.▼

자바스크립트 Media Capture and Streams API: MediaStream, MediaStreamTrack

자바스트립트 Media Stream Recording API: MediaRecorder

자바스크립트 File API 파헤치기: Blob, File, FileReader, FileList, BlobURL

물론 위의 내용을 완벽히 모르더라도 구현은 가능하다.

개발자는 코드로 이해하는게 더 빠를 때도 많으니까.

그럼 시작하자.

# 마이크 음성 녹음 – 예제 코드 전문

자바스크립트에서 목소리를 녹음하는 코드 전문이다.

코드에 대한 상세 설명은 아래에서 다룬다.

마이크 녹음

– 실행 결과:

1) “시작/종료” 버튼을 누르고 목소리를 녹음하고,

2) “시작/종료” 버튼을 다시 한번 눌러 녹음을 종료하고

3) “audio태그”의 플레이 버튼을 누르면 녹음된 목소리가 재생된다.

위의 코드에 대한 상세 설명은 아래에서 정리한다.

# 마이크 음성 녹음 – 상세 설명

1. 소리 취득

navigator.mediaDevices.getUserMedia({audio: true})

– 마이크가 입력 받는 소리는 MediaStream객체로 들어온다.

– 위의 getUserMedia()메서드를 호출하면, Promise 형태로 소리 데이터가 들어온다.

* 단, getUserMedia()는 https 환경에서만 작동하니 주의하자!(로컬 환경에서 실행하는건 상관 없다)

* Promise를 반환하므로 then()으로 받아서 사용하거나, async/await 구문을 사용해야 한다.

2. 소리 녹음

– MediaStream을 통해 들어오는 오디오 데이터는 MediaRecorder 객체를 통해 저장할 수 있다.

1) MediaRecorder 객체 생성

new MediaRecorder(MediaStream)

: getUserMedia()로 취득한 MediaStream을 인자로 넣어 생성자를 호출해준다.

2) 이벤트 핸들러 정의

mediaRecorder.ondataavailable

: 이용가능한 오디오 데이터가 들어올 때마다 호출된다.

: 데이터 조각들은 이벤트 핸들러의 인자 event.data(Blob객체)로 취득할 수 있다.

: 취득한 Blob객체들은 나중에 합치기 위해 배열 등에 저장해 둔다.

mediaRecorder.onstop

: 녹음이 종료되면 호출된다.

: 배열에 저장해둔 오디오 데이터(Blob)들을 합친다.

3) 녹음 시작

mediaRecorder.start()

: 녹음을 시작하는 메서드다.

: 녹음이 시작되면 이용가능한 데이터(Blob)가 들어올 때마다 dataavailabel이벤트가 호출된다.

4) 녹음 종료

mediaRecorder.stop()

: 녹음을 종료하는 메서드다.

: 녹음이 종료되면 stop이벤트가 호출된다.

3. 소리 재생

window.URL.createObjectURL(Blob)

: 통합한 오디오 데이터(Blob)를 BlobURL로 생성한다.

: BlobURL은 Blob객체가 저장하고 있는 데이터를 가르키는 임시 URL이다.

* BlobURL은 ObjectURL이라고도 하며 생성된 웹페이지에서만 이용가능한 주소값이다.

audio.src = blobURL

audio.play()

: BlobURL은 audio나 video태그의 src로 설정하여 재생 가능하다.

※ 주의 사항

1. 이 코드에서 사용되는 MediaRecorder는 브라우저별로 지원 여부를 확인해야 한다.

– 글 작성 시점 기준으로 Chrome에서는 작동하나, Safari는 작동하지 않았다.

2. 이 코드에서 사용되는 getUserMedia()는 서버 환경에서는 https에서만 작동한다.

– 개인 PC에서 html파일을 실행하는 경우엔 잘 작동한다.

▼MediaStream, MediaRecorder, Blob에 대한 자세한 내용은 아래 글을 참고하자.▼

자바스크립트 Media Capture and Streams API: MediaStream, MediaStreamTrack

자바스트립트 Media Stream Recording API: MediaRecorder

자바스크립트 File API 파헤치기: Blob, File, FileReader, FileList, BlobURL

▼브라우저 상에서 카메라로 비디오(동영상) 녹화하는 방법은 아래 글 참고▼

[자바스크립트] 카메라 영상 녹화 방법 (+무음 비디오 촬영)

▼audio, video 엘리먼트로 재생중인 소리/영상 녹화 방법은 아래 글 참고▼

[자바스크립트] audio/video 태그에서 재생 중인 소리/영상 녹음 방법

나 태그에서 재생중인 오디오/비디오 녹음 방법은 아래 글 참고▼

[JavaScript] recordrtc 라이브러리 단순 음성 녹음 사용 방법

JavaScript [JavaScript] recordrtc 라이브러리 단순 음성 녹음 사용 방법 AIdev ・ URL 복사 본문 기타 기능 공유하기 이 포스트는 아래 링크의 프로젝트를 일부 수정해서 설명하고 있습니다.

https://github.com/szwang/recordrtc-react HTML5의 레코딩 기능을 사용하려면 recordrtc라는 라이브러리를 고려해 볼 것을 추천합니다. 비디오와 오디오 모두 사용할 수 있지만 여기서는 오디오 레코딩에 대해서 알아보겠습니다.

(라이브러리 전체의 사용법에 흥미가 있다면 아래 링크를 참고해 주세요.)

https://github.com/szwang/recordrtc-react

우선 라이브러리를 사용하려면 라이브러리를 삽입해야겠죠? 여기서는 CDN 방식으로 사용하겠습니다.

미디어 스트림 받아오기 우선 필요한 것은 브라우저에 미디어 스트림을 사용할 수 있도록 요청을 해야겠죠?

function captureMicrophone(callback) { navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia; navigator.getUserMedia({audio: true}, callback, function (error) { alert(‘Unable to access your microphone.’); console.error(error); }); } 위 함수를 조금 더 자세히 살펴보겠습니다.

navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia; 우선 브라우저에 미디어를 사용할 수 있도록 요청합니다. || 로 여러 개를 요청하고 있는 것은 브라우저 호환을 위해서입니다.

navigator.getUserMedia({audio: true}, callback, function (error) { alert(‘Unable to access your microphone.’); console.error(error); }); 이렇게 받아온 요청을 한 후 어떤 형식의 미디어 스트림을 사용할 것인지 제약을 전달하고 실행될 때의 callback함수와 실패 했을 때의 callback 함수를 지정해 줍니다. 제대로 실행될 때의 callback 함수는 captureMicrophone 함수를 실행할 때 인자로 받을 수 있도록 정의를 해 두었네요.

function captureMicrophone(callback) {…} 녹음 시작하기 이렇게 호출된 callback함수에는 얻어온 미디어 stream을 인자로 전달해 줄 수 있습니다. 이 stream을 이용해서 이제 우리가 하고 싶은 기능을 구현하면 되는 것이죠. 여기서는 간단히 받아온 스트림을 바로 재생하고 특정 포멧으로 녹음을 시작해 보겠습니다.

var recorder; // globally accessible document.getElementById(‘btn-start-recording’).onclick = function () { this.disabled = true; captureMicrophone(function (microphone) { audio.src = URL.createObjectURL(microphone); audio.play(); recorder = RecordRTC(microphone, { type: ‘audio’, recorderType: StereoAudioRecorder, numberOfAudioChannels: 1, // or leftChannel:true desiredSampRate: 16000 }); recorder.startRecording(); // release microphone on stopRecording recorder.microphone = microphone; document.getElementById(‘btn-stop-recording’).disabled = false; }); }; 위의 함수는 버튼 요소(element)에 onclick 이벤트로 연결되어 있습니다. 간단히 이야기해서 start 버튼이 눌러졌을 때 실행이 된다는 것입니다. 중요한 부분을 중심을 살펴 보겠습니다.

먼저 위에 정의 한 captureMicrophone 함수를 실행하면서 callback 함수를 전달해주고 있네요. 이 callback함수는 미디어 stream을 받을 수 잇는데 여기서는 microphone이라고 정의하고 있습니다.

function (microphone) { …} 이렇게 받아온 microphone을 audio 요소에 연결해 줍니다.

audio.src = URL.createObjectURL(microphone); 스트림에 바로 URL을 생성해서 오디오에 연결을 해주고 있네요.

audio.play(); 그런 다음 바로 play을 하고 있네요. 이 예제는 녹음하는 중에 그 소리를 들을 수 있습니다. 그래서 그런지 가끔 하울링이 발생하는 경우도 있었습니다.

recorder = RecordRTC(microphone, { type: ‘audio’, recorderType: StereoAudioRecorder, numberOfAudioChannels: 1, // or leftChannel:true desiredSampRate: 16000 }); 드디어 RecordRTC에 가져온 microphone을 연결을 해주네요. 그리고 동시에 같이 audio 녹음의 포멧도 같이 전달해주고 있습니다. audio 타입이고 Stereo 타입으로 녹음을 합니다. 하지만 때로는 모노 타입으로 녹음을 할 필요도 있을 것입니다. (간단히 이야기 하면 스테레오 타입은 마이크 두 개로 녹음을 하는 것이고 모노는 마이크 하나로 녹음을 하는 것입니다.) recordRTC에서는 기본적으로 모노 타입으로 녹음을 하는 기능은 없습니다.

numberOfAudioChannels: 1, // or leftChannel:true 하지만 위 처럼 채널을 하나만 설정하면 mono타입으로 녹음이 됩니다. 그리고 16000으로 샘플레이트를 설정합니다(샘플레이트는 초당 오디오 샘플을 채취하는 수를 말합니다. 높을 수록 자연에 가까운 소리가 되겠지만 더 무거운 파일이 되겠죠?)

이제 RecordRTC가 우리가 사용할 수 있는 객체를 반환해 줍니다.

recorder.startRecording(); 이렇게 녹음을 시작합니다.

recorder.microphone = microphone; 이렇게 스트림을 microphone을 연결해주고 나중에 정지할 때 해제해주게 됩니다.

녹음 마치기 녹음을 시작했다면 정지도 해야겠죠.

recorder.stopRecording(stopRecordingCallback); 이렇게 정지를 하는데 여기에도 callback 함수가 전달이 되네요.

function stopRecordingCallback() { var blob = recorder.getBlob(); audio.src = URL.createObjectURL(blob); audio.play(); recorder.microphone.stop(); createAudioElement(window.URL.createObjectURL(blob)); } 정지시 전달되는 callback 함수를 조금 더 자세히 볼까요?

var blob = recorder.getBlob(); 우선 녹음된 오디오의 blob 파일을 받아옵니다.

audio.src = URL.createObjectURL(blob); 브라우저 내부의 저장소의 URL을 생성하고 오디오에 연결을 해줍니다.

audio.play(); 또 바로 play을 하고 있네요. 네 이 예제에서는 녹음이 마치자 마자 자동으로 녹음된 내용이 플레이 됩니다.

recorder.microphone.stop(); 아까 연결해준 microphone을 해제시키고 있네요.

createAudioElement(window.URL.createObjectURL(blob)); createAudioElement는 다운로드 받을 수 있는 링크를 생성하는 기능을 합니다.(자세한 내용은 아래 전체 코드에서 확인해 주세요).

이제 녹음을 하고 저장하고 재생하고 다운로드 받는 예제를 실행할 수 있습니다.

전체 코드

16khz Audio Recording using RecordRTC

16khz Audio Recording using RecordRTC


인쇄

자바스크립트 예제: 마이크 테스트

출처 바로가기

자바스크립트에서 마이크를 사용하려면 먼저 사용자로부터 마이크 사용 권한을 획득해야 합니다.

여기서 사용자가 허용 버튼을 눌러야 이후 녹음 작업이 진행이 됩니다.

이 부분은 navigator.mediaDevices.getUserMedia(constraints).then(…) 을 사용합니다.

if (navigator.mediaDevices) { const constraints = { audio: true } navigator.mediaDevices.getUserMedia(constraints) .then(stream => { …………….. }) .catch(err => { console.log(‘The following error occurred: ‘ + err) }) }

마이크 소리를 실시간으로 들으려는 경우 오디오 컨텍스트를 사용하며, 마이크 소리를 녹음한 경우 저장하려는 경우 new MediaRecorder(stream ) 을 사용합니다.

미디어리코더에서 .start() 를 하면 녹음을 시작하고, .stop() 을 하면 녹음이 종료됩니다.

아래 코드는 녹음이 진행되는 동안 데이터를 배열에 저장하는 작업입니다.

mediaRecorder.ondataavailable = e => { chunks.push(e.data) }

이 배열을 블롭 데이터로 변환한 후

const audio = document.createElement(‘audio’) … audio.controls = true const blob = new Blob(chunks, { ‘type’: ‘audio/ogg codecs=opus’ }) … const audioURL = URL.createObjectURL(blob) audio.src = audioURL

이것을 종합한 예제 코드는 아래와 같습니다.

react로 음성 녹음 기능을 구현해보자

갑자기 왜?

친구들과 프로젝트를 하던 중, 음성녹음 기능을 필요로 하는 웹을 구현하게 되었습니다. 사실 구현한 지는 작년 겨울쯤이지만…😅 거의 첫 프로젝트인데다가 react 입문 초기, 거기다 중요 기능인 음성 녹음 기능을 구현하면서 삽질을 정말 아주대박매우진짜탈모올정도로 많이 했었습니다.

예제 많지 않나? 그렇게 까지 어렵진 않을텐데… 오바 떠네…

물론 음성 녹음 예제는 많습니다. 제가 부족한 것도 있습니다. 하지만 저는 음성 녹음이 어려웠다기보다 음성 녹음 후 서버로 업로드하는 과정의 자료가 적어 그 부분에서 고생했었습니다. 혹시 녹음과 관련한 기능을 구현하는 분들이 저같이 헛고생하지 않고, 조금이나마 금방 실마리를 찾으실 수 있게 도움이 되고자 끄적여봅니다.

코드나 내용에 있는 오류는 댓글로 둥글게 말씀해주시면 감사하겠습니다 😊

Step 1. 사용자에게 허락 받기

웹에서 마이크를 사용하려면 먼저 사용자로부터 마이크 사용 권한을 획득해야 합니다. 여기서 사용자가 허용 버튼을 눌러야 이후 녹음 작업이 진행이 됩니다. 이 부분은

navigator.mediaDevices.getUserMedia({audio : true}).then(…)

이렇게 사용 권한을 획득할 수 있습니다. 여기서 허용버튼을 눌러야 then문이 실행됩니다.

Step 2. 녹음하기

사용자가 허용했을 때 녹음하는 코드를 작성해보겠습니다.

import React, { useState } from “react”; const AudioRecord = () => { const [stream, setStream] = useState(); const [media, setMedia] = useState(); const [onRec, setOnRec] = useState(true); const [source, setSource] = useState(); const [analyser, setAnalyser] = useState(); const [audioUrl, setAudioUrl] = useState(); const onRecAudio = () => { // 음원정보를 담은 노드를 생성하거나 음원을 실행또는 디코딩 시키는 일을 한다 const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); // 자바스크립트를 통해 음원의 진행상태에 직접접근에 사용된다. const analyser = audioCtx.createScriptProcessor(0, 1, 1); setAnalyser(analyser); function makeSound(stream) { // 내 컴퓨터의 마이크나 다른 소스를 통해 발생한 오디오 스트림의 정보를 보여준다. const source = audioCtx.createMediaStreamSource(stream); setSource(source); // AudioBufferSourceNode 연결 source.connect(analyser); analyser.connect(audioCtx.destination); } // 마이크 사용 권한 획득 후 녹음 시작 navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => { const mediaRecorder = new MediaRecorder(stream); mediaRecorder.start(); setStream(stream); setMedia(mediaRecorder); makeSound(stream); // 음성 녹음이 시작됐을 때 onRec state값을 false로 변경 analyser.onaudioprocess = function (e) { setOnRec(false); }; }); }; return ( <> < button onClick = {onRecAudio} > 녹음 < button > 결과 확인 ); }; export default AudioRecord;

유저가 녹음 버튼을 눌렀을 때 onRecAudio 함수를 실행시킵니다. 음성 녹음이 시작됐을 때 onRec state값을 false로 변경하는 이유는 녹음 버튼을 한번 더 눌렀을 때, 녹음이 중지되도록 함수를 하나 더 만들기 위해서입니다. 바로 밑에서 같이 추가해봅시다!

Step 3. 녹음 중지하기

녹음 버튼을 한번 더 눌렀을 때 녹음이 중지되도록 해보겠습니다.

const offRecAudio = () => { // dataavailable 이벤트로 Blob 데이터에 대한 응답을 받을 수 있음 media.ondataavailable = function (e) { setAudioUrl(e.data); setOnRec(true); }; // 모든 트랙에서 stop()을 호출해 오디오 스트림을 정지 stream.getAudioTracks().forEach(function (track) { track.stop(); }); // 미디어 캡처 중지 media.stop(); // 메서드가 호출 된 노드 연결 해제 analyser.disconnect(); source.disconnect(); };

return ( <> // onRec 값을 통해 녹음 중인지 아닌지를 구분하여 함수 실행 < button onClick = {onRec ? onRecAudio : offRecAudio} > 녹음 < button > 결과 확인 );

Step 4. 조건에 맞춰서 녹음하기

음성 녹음 기능을 구현하면서 조건을 넣을 수 있습니다. 저는 3분까지만 녹음을 할 수 있도록 하는 조건을 추가해보겠습니다. e.playbackTime 은 녹음이 되고있는 시간을 초 단위로 나타냅니다! 3분이 지났을때 음성 녹음이 중지되는 조건을 추가하고 싶으니 180으로 조건문을 작성하면 되겠죠?

analyser.onaudioprocess = function (e) { // 3분(180초) 지나면 자동으로 음성 저장 및 녹음 중지 if (e.playbackTime > 180) { stream.getAudioTracks().forEach(function (track) { track.stop(); }); mediaRecorder.stop(); // 메서드가 호출 된 노드 연결 해제 analyser.disconnect(); audioCtx.createMediaStreamSource(stream).disconnect(); mediaRecorder.ondataavailable = function (e) { setAudioUrl(e.data); setOnRec(true); }; } else { setOnRec(false); } };

Step 5. 녹음 종료 후 원하는 방식으로 처리하기

사용자가 녹음을 종료하고 결과 확인 버튼을 눌렀을 때 audio url 또는 파일로 변환시켜 console에 출력해보겠습니다. 그럼 먼저 url로 생성하는 방식부터 확인해봅시다!

const onSubmitAudioFile = useCallback(() => { if (audioUrl) { console.log(URL.createObjectURL(audioUrl)); // 출력된 링크에서 녹음된 오디오 확인 가능 } }, [audioUrl]);

그럼 파일 형식으로 생성하는 과정을 알아보겠습니다. 보통 서버에 파일을 업로드할 때는 form-data 방식을 사용합니다. 그렇기 때문에 음성 파일로 업로드해줘야합니다. 쉽게 생각하면 금방 해결됩니다. File생성자를 이용하면 됩니다.

const onSubmitAudioFile = useCallback(() => { if (audioUrl) { console.log(URL.createObjectURL(audioUrl)); // 출력된 링크에서 녹음된 오디오 확인 가능 } // File 생성자를 사용해 파일로 변환 const sound = new File([audioUrl], “soundBlob”, { lastModified: new Date().getTime(), type: “audio” }); console.log(sound); // File 정보 출력 }, [audioUrl]);

해당 함수를 결과 확인 버튼을 클릭했을 때 실행시켜줍니다.

< button onClick = {onSubmitAudioFile} > 결과 확인

이제 음성 녹음 후 결과 확인 버튼을 클릭했을 때 console창에서 오디오의 url과 파일 정보를 확인할 수 있습니다.

짜잔! 저 blob url로 들어가면 오디오를 재생해볼 수 있습니다😆

저 url을 audio태그의 src로 적용하면 웹페이지에서 재생시킬 수도 있겠죠? 또는 파일정보를 form-data에 삽입하여 서버에 보낼 수 있습니다! 필요한 방식에 맞춰 자유롭게 활용하시길 바랍니다🤗

전체 코드입니다!

웹 음성녹음 솔루션 ‘키위 보이스 레코더’

[웹 음성녹음 솔루션 : 키위 보이스 레코더]

* 웹 페이지에서 PC에 연결 되어 있는 마이크로 음성을 녹음하여 녹음 파일을 다운로드 또는 웹 서버에 업로드 할 수 있는 솔루션입니다.

* 웹사이트에 맞춤형으로 웹 음성녹음 서비스를 구축 할 수 있습니다.

* HTML5, JavaScript 기반으로 웹 서버 OS 및 웹 사이트 제작 언어에 상관 없이 음성 녹음 서비스를 구축하여 운영 할 수 있습니다.

* 음성 녹음은 mp3파일로 녹음되며 녹음 시간 길이는 원하는 최대 시간(초 단위)을 설정 할 수 있습니다.

[주요 기능]

* 음성 녹음 최대 시간(초) 설정 : 시간을 초과 하면 자동으로 녹음이 종료됩니다.

* 녹음된 음성 다시 듣기 및 녹음 완료 후 다시 녹음 할 수 있습니다.

*웹 사이트에서 녹음 완료 후 서버에 전송 시 다른 변수 값들을 추가 하여 전송 할 수 있어 웹 사이트에서 다양한 용도로 서비스 할 수 있습니다.

* 녹음 파일은 mp3 파일로 녹음됩니다.

* 녹음 완료 후 다운로드 기능도 함께 제공됩니다. mp3파일로 다운로드됩니다.

* 녹음시작,녹음정지,다운로드,업로드 등의 기능을 직접 제작한 버튼 또는 이미지로 자유롭게 연동 할 수 있습니다.

* Javascript 파일로 모든 설정이 가능하며 예제 HTML 파일을 제공하여 손쉽게 서비스를 구축 할 수 있습니다.

[웹 음성녹음 체험하기]

* 웹 음성 녹음 체험 URL에 접속한 PC에 마이크 및 스피커가 연결되어 있어야 합니다.

* 웹 음성녹음 체험 URL에 접속 후 마이크 사용 권한 요청 메시지창이 뜨면 반드시 허용해주세요.

* 보안인증(SSL)이 적용되어 있는 도메인 URL로 접속(https://)해야 녹음 기능을 정상적으로 사용 할 수 있습니다.

* 웹 음성녹음 기능은 구글 크롬(Chrome, 버전52이상) 또는 마이크로소프트 엣지(Edge) 브라우저에서 사용을 권장합니다. 인터넷 익스플로러(Internet Explorer) 브라우저에서는 지원하지 않습니다.

아래 체험하기 URL을 클릭하세요.

https://www.kiwisoft.kr/Kiwi_Voice_Recorder/index_test.html

[웹 음성녹음 솔루션 구매 안내]

* 키위 보이스 레코더는 고객사에서 직접 운영 하시는 웹사이트에 적용 할 수 있는 솔루션입니다.

* 구매 문의는 [email protected] 이메일로 문의주시면 구매에 대한 안내 및 견적서를 이메일로 보내드립니다.

########################################################################################

앤아이비디앤(키위소프트)

제작 및 기타 문의

E-mail: [email protected]

Phone: 070-7857-3800

Web : https://www.kiwisoft.kr

Since 2007 ~ 현재

########################################################################################

[자바스크립트, html] 화면 녹화, 녹음하기

728×90

크롬에서 띄운 화면을 녹화하고, 마이크 음성 및 컴퓨터에서 재생되고 있는 소리까지 녹음한다.

처음에 해상도를 지정하지 않고 녹화했을 때 저장되는 용량이 너무 크면

비디오스트림을 생성할때 해상도를 설정해서 용량을 낮출 수 있다.

(해당 코드에서는 640×480으로 아주 낮게 설정되어있음)

(video: { width: 640 , height: 480 } -> video: true 로 설정하면 녹화 화면 해상도에 맞게 녹화된다)

녹화종료 버튼을 누르고 다운로드를 누르면 로컬에 저장된다.

비디오, 오디오 스트림을 각각 만들고 해당 스트림들을 연결해서 동작한다.

소스코드

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 window . onload = () = > { const startBtn = document . getElementById ( ‘startBtn’ ); const stopBtn = document . getElementById ( ‘stopBtn’ ); const download = document . getElementById ( ‘download’ ); let blobs; let blob; // 데이터 let rec; // 스트림을 기반으로 동작하는 mediarecorder 객체 let stream; // 통합 let voiceStream; // 오디오스트림 let desktopStream; // 비디오스트림 const mergeAudioStreams = (desktopStream, voiceStream) = > { // 비디오, 오디오스트림 연결 const context = new AudioContext(); const destination = context.createMediaStreamDestination(); let hasDesktop = false ; let hasVoice = false ; if (desktopStream & & desktopStream.getAudioTracks(). length > 0 ) { const source1 = context.createMediaStreamSource(desktopStream); const desktopGain = context.createGain(); desktopGain.gain.value = 0. 7 ; source1.connect(desktopGain).connect(destination); hasDesktop = true ; } if (voiceStream & & voiceStream.getAudioTracks(). length > 0 ) { const source2 = context.createMediaStreamSource(voiceStream); const voiceGain = context.createGain(); voiceGain.gain.value = 0. 7 ; source2.connect(voiceGain).connect(destination); hasVoice = true ; } return (hasDesktop | | hasVoice) ? destination.stream.getAudioTracks() : []; }; startBtn. onclick = async () = > { // 녹화 시작 버튼을 누른 경우 desktopStream = await navigator .mediaDevices.getDisplayMedia({ video: { width: 640 , height: 480 }, audio: true }); // 비디오스트림 생성 voiceStream = await navigator .mediaDevices.getUserMedia({ video: false , audio: true }); // 오디오스트림 생성 const tracks = [ …desktopStream.getVideoTracks(), …mergeAudioStreams(desktopStream, voiceStream) ]; stream = new MediaStream(tracks); blobs = []; rec = new MediaRecorder(stream, {mimeType: ‘video/webm; codecs=vp9,opus’ }); // mediaRecorder객체 생성 rec.ondataavailable = (e) = > blobs.push(e.data); rec.onstop = async () = > { blob = new Blob(blobs, {type: ‘video/webm’ }); let url = window .URL.createObjectURL(blob); download.href = url; download.download = ‘test.webm’ ; download.style.display = ‘block’ ; }; startBtn.disabled = true ; // 시작 버튼 비활성화 stopBtn.disabled = false ; // 종료 버튼 활성화 rec.start(); // 녹화 시작 }; stopBtn. onclick = () = > { // 종료 버튼을 누른 경우 // 버튼 비활성화 startBtn.disabled = true ; stopBtn.disabled = true ; rec. stop (); // 화면녹화 종료 및 녹화된 영상 다운로드 desktopStream.getTracks().forEach(s = > s. stop ()) voiceStream.getTracks().forEach(s = > s. stop ()) desktopStream = null ; voiceStream = null ; startBtn.disabled = false ; // 시작 버튼 활성화 }; }; Colored by Color Scripter cs

끝~

728×90

키워드에 대한 정보 javascript 음성 녹음

다음은 Bing에서 javascript 음성 녹음 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 자바스크립트 – 음성을 텍스트로 변환해 보기

  • 자바스크립트
  • javascript
  • web speech api
  • speechrecognition
  • 웹개발

자바스크립트 #- #음성을 #텍스트로 #변환해 #보기


YouTube에서 javascript 음성 녹음 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 자바스크립트 – 음성을 텍스트로 변환해 보기 | javascript 음성 녹음, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  청소 용품 쇼핑몰 | 매직청소Tv 청소용품 쇼핑몰 오픈! 오픈 이벤트도 진행 144 개의 정답

Leave a Reply

Your email address will not be published. Required fields are marked *