{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "4d1e4157-e611-48b4-bf9a-b01aeff6db36", "metadata": {}, "source": [ "# __오디오 파일을 받아쓰는 음성 인식 모델 사용하기__" ] }, { "attachments": {}, "cell_type": "markdown", "id": "97601609-0725-4cbf-a8b8-92973214fdbd", "metadata": {}, "source": [ "- 튜토리얼 난이도: ★☆☆☆☆\n", "- 읽는데 걸리는 시간: 5분\n", "- 사용 언어: [SQL](https://ko.wikipedia.org/wiki/SQL) (100%)\n", "- 실행 파일 위치: tutorial/thanosql_ml/audio_recognition/speech_recognition2.ipynb\n", "- 참고 문서: [(AI-Hub) 한국어음성 데이터](https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=123), [whisper](https://github.com/openai/whisper)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d15a2fa0", "metadata": { "tags": [] }, "source": [ "## 튜토리얼 소개 \n", "\n", "
컴퓨터 음성 인식 또는 음성-텍스트 변환(Speech-to-Text)이라고도 부르는 음성 인식 기술은 프로그램이 사람의 음성을 텍스트 형식으로 처리할 수 있도록 해줍니다. 최근 자동차, 의료 분야, 인공지능 스피커나 스마트폰을 이용한 일상 생활까지 광범위한 분야에서 활용되고 있습니다. 최근 머신러닝(기계학습/Machine Learning) 알고리즘을 활용한 음성 인식 기술은 문법, 구문, 구조, 오디오와 음성 신호의 구성을 통합하여 음성을 이해하고 처리합니다.
\n", "일반적으로 음성 인식(Voice Recognition)과 혼동 될 수 있는데, 음성 인식은 개별 사용자의 목소리를 식별하는 데만 집중합니다.
\n", "👉 Whisper [Alec Radford et al. 2022]는 OpenAI에서 공개한 범용 음성 인식 딥러닝 모델로, 다양한 오디오의 대규모 데이터 세트에 대한 학습을 지원하며, 다국어 음성 인식은 물론 음성 번역 및 언어 식별을 수행할 수 있게 하는 다중 작업 모델입니다. 일반적인 음성 인식 문제에 적용해도 좋은 성능을 보입니다. 본 튜토리얼에서는 Whisper의 기능 중 일반적으로 사용되는 음성 인식과 영어로 번역을 실행합니다.
\n", "\n", " | audio_path | \n", "sampling_rate | \n", "transcript_phonetic | \n", "transcript_spelling | \n", "duration | \n", "
---|---|---|---|---|---|
0 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "가를 보면 한국어 사용하는 인구 수가 십이 위입니다. 일위가 중국어고 이위가 스페인... | \n", "가를 보면 한국어 사용하는 인구 수가 십이 위입니다. 일위가 중국어고 이위가 스페인... | \n", "8.70 | \n", "
1 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "말을 사랑하고 아껴서 규정에 맞게 파괴하지 않고 네 잘. | \n", "말을 사랑하고 아껴서 규정에 맞게 파괴하지 않고 네 잘. | \n", "5.89 | \n", "
2 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "진행하고 있습니다. 자 오늘의 목표 확인해 보도록 하겠습니다. 오늘의 목표 네. | \n", "진행하고 있습니다. 자 오늘의 목표 확인해 보도록 하겠습니다. 오늘의 목표 네. | \n", "4.86 | \n", "
3 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "그리고 이번에는 다른 친구의 글을 평가해보는 것을 하는 겁니다. | \n", "그리고 이번에는 다른 친구의 글을 평가해보는 것을 하는 겁니다. | \n", "4.61 | \n", "
4 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "쓰기가 된 글 완성된 글 또는 쓰기 전의 개요 뭐 자료 이런 것들을 보여주면서 그것... | \n", "쓰기가 된 글 완성된 글 또는 쓰기 전의 개요 뭐 자료 이런 것들을 보여주면서 그것... | \n", "11.52 | \n", "
korean_voice 테이블은 아래와 같은 정보를 담고 있습니다.
\n", "\n", " | audio_path | \n", "sampling_rate | \n", "transcript_phonetic | \n", "transcript_spelling | \n", "duration | \n", "predict_result | \n", "
---|---|---|---|---|---|---|
0 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "가를 보면 한국어 사용하는 인구 수가 십이 위입니다. 일위가 중국어고 이위가 스페인... | \n", "가를 보면 한국어 사용하는 인구 수가 십이 위입니다. 일위가 중국어고 이위가 스페인... | \n", "8.70 | \n", "가를 보면 한국어 사용하는 인구수가 12위입니다 1위가 중국어고 2위가 스페인어고 ... | \n", "
1 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "말을 사랑하고 아껴서 규정에 맞게 파괴하지 않고 네 잘. | \n", "말을 사랑하고 아껴서 규정에 맞게 파괴하지 않고 네 잘. | \n", "5.89 | \n", "를 사랑하고 아껴서 규정에 맞게 파괴하지 않고 잘 | \n", "
2 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "진행하고 있습니다. 자 오늘의 목표 확인해 보도록 하겠습니다. 오늘의 목표 네. | \n", "진행하고 있습니다. 자 오늘의 목표 확인해 보도록 하겠습니다. 오늘의 목표 네. | \n", "4.86 | \n", "오늘의 목표 확인해보도록 하겠습니다. | \n", "
3 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "그리고 이번에는 다른 친구의 글을 평가해보는 것을 하는 겁니다. | \n", "그리고 이번에는 다른 친구의 글을 평가해보는 것을 하는 겁니다. | \n", "4.61 | \n", "그리고 이번에는 다른 친구에게를 평가해 보는 것을 하는 겁니다 | \n", "
4 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "쓰기가 된 글 완성된 글 또는 쓰기 전의 개요 뭐 자료 이런 것들을 보여주면서 그것... | \n", "쓰기가 된 글 완성된 글 또는 쓰기 전의 개요 뭐 자료 이런 것들을 보여주면서 그것... | \n", "11.52 | \n", "쓰기가 될 글 완성된 글 또는 쓰기 전에 개요, 자료 이런 것들을 보여주면서 그것을... | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
95 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "희곡 같은 데서 제일 중요한 한 단어는 뭐라고요. | \n", "희곡 같은 데서 제일 중요한 한 단어는 뭐라고요. | \n", "3.20 | \n", "키곡 같은 데에서 제일 중요한 한 단어는 뭐라고요? | \n", "
96 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "수필이라는 이름 자체가 무슨 뜻인지 아나요. | \n", "수필이라는 이름 자체가 무슨 뜻인지 아나요. | \n", "2.94 | \n", "수필이라는 이름 자체가 무슨 뜻인지 알아요? | \n", "
97 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "당근 씨를 막 뿌리려는 남편에게 나는 몇 번이나 말했다 그랬습니다. | \n", "당근 씨를 막 뿌리려는 남편에게 나는 몇 번이나 말했다 그랬습니다. | \n", "3.58 | \n", "당근실을 막 뿌리려는 남편에게 나는 몇 번이나 말했다. | \n", "
98 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "작년에도 너무 얕게 씨를 뿌려 낭패를 본 적이 있기 때문이다. | \n", "작년에도 너무 얕게 씨를 뿌려 낭패를 본 적이 있기 때문이다. | \n", "4.22 | \n", "작년에도 너무 얕게 씨를 뿌려 낭패를 본 적이 있기 때문이다. | \n", "
99 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "하나는 새를 위해서 하나는 또. | \n", "하나는 새를 위해서 하나는 또. | \n", "2.69 | \n", "하나는 새, 하나는 또 | \n", "
100 rows × 6 columns
\n", "\n", " | audio_path | \n", "sampling_rate | \n", "transcript_phonetic | \n", "transcript_spelling | \n", "duration | \n", "predict_result | \n", "
---|---|---|---|---|---|---|
0 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "가를 보면 한국어 사용하는 인구 수가 십이 위입니다. 일위가 중국어고 이위가 스페인... | \n", "가를 보면 한국어 사용하는 인구 수가 십이 위입니다. 일위가 중국어고 이위가 스페인... | \n", "8.70 | \n", "The number of people using Korean is 12. | \n", "
1 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "말을 사랑하고 아껴서 규정에 맞게 파괴하지 않고 네 잘. | \n", "말을 사랑하고 아껴서 규정에 맞게 파괴하지 않고 네 잘. | \n", "5.89 | \n", "Love and cherish the words and don't destroy t... | \n", "
2 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "진행하고 있습니다. 자 오늘의 목표 확인해 보도록 하겠습니다. 오늘의 목표 네. | \n", "진행하고 있습니다. 자 오늘의 목표 확인해 보도록 하겠습니다. 오늘의 목표 네. | \n", "4.86 | \n", "Let's check today's goal. | \n", "
3 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "그리고 이번에는 다른 친구의 글을 평가해보는 것을 하는 겁니다. | \n", "그리고 이번에는 다른 친구의 글을 평가해보는 것을 하는 겁니다. | \n", "4.61 | \n", "And this time, I'm going to evaluate other fri... | \n", "
4 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "쓰기가 된 글 완성된 글 또는 쓰기 전의 개요 뭐 자료 이런 것들을 보여주면서 그것... | \n", "쓰기가 된 글 완성된 글 또는 쓰기 전의 개요 뭐 자료 이런 것들을 보여주면서 그것... | \n", "11.52 | \n", "It is a problem of the order and writing area. | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
95 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "당근 씨를 막 뿌리려는 남편에게 나는 몇 번이나 말했다 그랬습니다. | \n", "당근 씨를 막 뿌리려는 남편에게 나는 몇 번이나 말했다 그랬습니다. | \n", "3.58 | \n", "I told my husband that I would pour carrots a ... | \n", "
96 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "작년에도 너무 얕게 씨를 뿌려 낭패를 본 적이 있기 때문이다. | \n", "작년에도 너무 얕게 씨를 뿌려 낭패를 본 적이 있기 때문이다. | \n", "4.22 | \n", "I've seen a lot of people who put too little s... | \n", "
97 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "하나는 새를 위해서 하나는 또. | \n", "하나는 새를 위해서 하나는 또. | \n", "2.69 | \n", "One is for the new year. Another is for the ne... | \n", "
98 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "많이 씨앗들을 넣어가지고 너무 촘촘하게 여러 개가 한꺼번에 자라는 거야 여러 줄기가. | \n", "많이 씨앗들을 넣어가지고 너무 촘촘하게 여러 개가 한꺼번에 자라는 거야 여러 줄기가. | \n", "6.14 | \n", "I put a lot of seeds in it and it grew into a ... | \n", "
99 | \n", "thanosql-dataset/korean_voice_data/audio/broad... | \n", "16000 | \n", "텃밭 농사짓는 정도일 겁니다. | \n", "텃밭 농사짓는 정도일 겁니다. | \n", "2.30 | \n", "It's about the same as the picture in the Tupp... | \n", "
100 rows × 6 columns
\n", "ThanoSQL을 활용해 나만의 모델을 만들거나, 나의 서비스에 적용하는데 어려움이 있다면 언제든 아래로 문의주세요😊
\n", "음성 인식 모델 구축 관련 문의: contact@smartmind.team
\n", "