[Deepgram x DEV 해커톤 투고 포스트 Translate-io]

4229 단어 hackwithdgjavaspring

내 제출물 개요



Translate-io - n분 동안 오디오를 녹음하고 녹음 파일과 전사를 가져오는 하나의 명령입니다. 파일을 번역하는 하나의 명령. 전사를 얻기 위한 Java/Spring 구현. node.js, python 및 c#용 SDK는 Java용 경로를 열 수 있습니다.

제출 카테고리:



접근성 지지자

Github




마하데브-k / 번역-io


언어 번역 프로젝트





번역-io


언어 번역 프로젝트
딥그램 음성을 텍스트 번역으로 제공하는 스프링 쉘 프로젝트입니다.
mvn spring-boot:실행
쉘 명령
sptt {mins} {seconds} {language(Optional)}- This will start recording audio for n minutes and then the whole audio will transcribed and shown in the notepad : Windows
stop-sptt {id} - Will stop recording and translation. 
translate-file {filepath} {language(Optional)} - Ex translate-file recordings/record.wav will translate the file to english and show you the transcription 



View on GitHub



추가 리소스/정보




translate-io – TranslateShell.java 2022-04-11 11-58-13.mp4 - Google 드라이브




drive.google.com




translate-file recordings/song.mp3 it-> 벨라 챠오 성적표.


내 Deepgram 사용 사례



안녕하세요 여러분, deepgram API가 있는 spring-shell에 오신 것을 환영합니다. Deepgram은 python, node.js 및 C#용 SDK를 제공했지만 Java는 어디에 있습니까? 또한 아이디어 중 하나는 언어를 기반으로 오디오를 번역한 다음 대본을 사람이 이해하는 언어로 번역하는 것이었습니다. 우리가 스페인 영화를 보고 스페인어 대본을 받아 영어로 번역할 수 있는 서비스에 이 스페인어 대본을 보낼 수 있는 것처럼요.
시간이 없었습니다.

Java로 음성-텍스트 변환을 구현하려고 시도했지만 많은 어려움이 있었습니다. 멀티스레딩 작업을 해본 적은 없지만 지난 이틀 동안 많은 것을 배웠습니다.



이 응용 프로그램은 spring-boot 및 spring-shell로 빌드되었습니다.
Spring-shell은 멋진 것으로 밝혀진 실행할 명령을 입력하는 데 도움이 될 것이며 나는 그것을 기반으로 무언가를 개발하고 싶었고 금요일에 이 해커톤에 대해 읽고 왜 안 될지 생각했습니다.

내가 생각한 응용 프로그램 구조는 다음과 같습니다.

컨트롤러 – 명령을 받아 TranslateService에 전달합니다.

TranslateService – 다양한 서비스 speechToText, LiveTranslation(작동하지 않음 🤷‍♂️) 등을 제공합니다...

하위 서비스 – SpeechToText, 실시간 번역 등을 지원할 수 있는 API가 있을 수 있습니다. 하지만 둘 다 지원하지 않는 API가 있을 수 있으므로 두 개의 인터페이스 speechToText와 LiveTranslation이 있고 Deepgram이 둘 다 구현합니다.

그리고 메인 서비스는 우리가 원하는 서브 서비스를 호출할 것입니다. 이제 그것은 deepgram이고 우리가 변경하고 싶다면 인터페이스를 구현하는 클래스를 쉽게 가질 수 있으므로 좋은 추상화와 느슨한 결합을 가질 수 있습니다. 이것이 내가 생각한 것이고 코드를 살펴볼 때 무슨 일이 일어났는지 알 것입니다.

하위 서비스는 작업을 수행하고 결과를 반환합니다.
이제 JS에서 이것을 구현하는 것이 가장 쉬운 방법이라고 생각하지만 Java가 멀티 스레딩에 많은 부담을 주었다는 것을 알고 있습니다.

멀티스레딩은 주로 프로그램이 다른 기능을 실행할 때 오디오를 병렬로 캡처하는 데 필요합니다.



기능에 대한 간략한 설명은 다음 명령을 참조하십시오.
sptt <minutes> <seconds> <language (Optional)>
n분 m초 동안 오디오를 캡처한 다음 프로젝트의/recordings 폴더에 저장될 녹취록을 전송합니다.
stop-sptt <threadid> to stop a running transcription.translate-file <filepath> <language>
프로젝트 실행 : mvn spring-boot:run

파일에 대한 기록을 생성합니다. 힌디어 오디오의 경우 언어에 "hi"를 제공할 수 있습니다.

비디오를 보고 프로젝트를 확인하여 더 잘 이해하십시오.

많은 사람들이 여러분 모두에게 찬사를 보내는 멋진 프로젝트를 많이 봤습니다. 즐거운 코딩하세요!

좋은 웹페이지 즐겨찾기