반응형

전체 글 341

음성 텍스트 변환, Long audio STT Code

어젠 구글 플랫폼에서 음성 파일을 텍스트로 변환했는데, 오늘은 Colab으로 코드를 다시 뜯어보기로 했다. 뜯어볼 코드는 구글 문서에 있는 샘플 코드이다. 여기 url로 들어가면 긴 오디오 파일을 텍스트 변환하는 안내 가이드가 있다. 어젠 무수히 많은 에러로 성공하지 못했지만 오늘은 하나하나 뜯어보면서 돌리기로 했다. 저기에 있는 코드를 가지고 옴 def transcribe_gcs(gcs_uri): """Asynchronously transcribes the audio file specified by the gcs_uri.""" from google.cloud import speech client = speech.SpeechClient() audio = speech.RecognitionAudio(uri=..

AIAIAIAI 2022.05.01

음성변환(STT) / Google STT 사용기/ Colab...ContextualVersionConflict: (protobuf 3.17.3 (/usr/local/lib/python3.7/dist-packages), Requirement.parse('protobuf>=3.19.0'), {'proto-plus'})

google API를 가지고 STT 시도한 후기. 후.. 오늘도 에러를 어떻게 해결했는지 올립니다. 멘탈 털린 건 30분~ 60분 짜리 오디오 파일을 텍스트로 변환할 때 코드 짜다가...ㅠㅠ. STT 관련 정보가 너무 없어서 일단 해결한 방식을 간단하게 나마 정리해서 올립니다. 짧은 오디오 파일을 텍스트로 변환 짧은 음성을 텍스트 번역하는 건 그다지 어렵지 않습니당.. 작업 환경은 따로 환경 설정 해줄 필요 없는. 늘 애용하는 Colab 으로 돌렸습니다. !pip install SpeechRecognition 이 코드만 치고 돌리면 사실 다 끝난 겁니다. import speech_recognition as sr sound_file = '/content/drive/MyDrive/proj/output_bef..

AIAIAIAI 2022.04.30

recognition connection failed: [Errno 32] Broken pipe / STT

Speech To Text 로 변환하려고 음성 파일을 변환하다가 다음과 같은 에러가 떴다... 이 에러는 아무래도 해당 음성 파일이 길어서 google api 등록하고 써야 하는 걸 말해주는 것 같다. 음성 파일이 10초? 정도의 숏 버전은 이런 에러가 뜨진 않았는데, 한 30분 정도 음성이다보니 역시 안되는 것 같다.. 10초 정도 되는 파일을 돌렸을 때, 다음과 같이 잘 뜬다. 확실히 음성 길이에 따라서 에러가 나타나는 걸로...! hoho. 다른 방법으로 시도해야 겠따.

AIAIAIAI 2022.04.30

3개의 변수 전역변수, 지역변수, 매개변수

전역변수(Global variable) : 프로그램 전체에서 유효하다. 지역변수(Local variable) : 함수를 선언한 { } 내에서만 유효하다. 매개변수(parameter) : 메소드가 호출될 때 시작되고, 메소드가 끝나면 소멸된다. Java, Python 언어 등에서 사용되는 변수 종류이다. 자바스크립트도 예를 들면 되는데 일단 간편한 파이썬을 예로 들면, def variable1(a): localVariable = "This is local variable입니다. 여기에서만 쓸 수 있는 변수" print(localVariable) print("호출도 함수 내에서만 할 수 있죠") print(iAmGlobalVariable) a = 5 print(a) iAmGlobalVariable = "아무..

Programming 2022.04.29

개체 무결성

개체 무결성은 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없다는 것을 뜻한다. 예를 들어 다음과 같은 의 데이터가 있고 SQL 명령문을 실행하는데 에러가 발생하였음. 번호 이름 성적 1 ㅇㅇ 100 2 ㅁㅁ 90 3 ㅂㅂ 100 4 ㅎㅎ 80 INSERT INTO table VALUES('3', 'ㄱㄱ', '150'); 번호, 이름, 성적의 string 값을 삽입하는 SQL 명령문이고, 에러가 난 것은 번호가 이미 3번이 있기 때문에 중복된 값을 삽입하기 때문에 이상이 발생한 것이다. 따라서 삽입 이상에 해당되며 해당 구문은 개체 무결성 제약조건을 위반한 내용이다.

Programming 2022.04.29

용어 정리) TCP/IP 플래그 비트 , 영속 계층의 DAO, DTO, VO

TCP / IP 의 플래그 비트 SYN: 초기 TCP 연결을 요청한다. 정보시스템 보안 관리와 관련해서 SYN Flooding이라고 공격자가 SYN(SPOOFED)를 지속적으로 요청해서 서버가 응답값 SYN_ACK를 보내는데 응답하지 않아서 연결 요청이 지속적으로 있기에 연결 가능한 TCP 자원이 남아나지 않는 것도 있다. ACK ACK 번호 필드에 값이 타당한지 확인 FIN : TCT 연결을 정상적으로 종료 RST : TCP 연결을 즉시 종료 PSH : 세그먼크 내의 데이터를 처리 URG: 긴급 데이터 처리 ​ 영속 계층 Persistence Layer의 객체 종류. Java 등에서 사용. DTO, VO 구현은 데이터 교환을 위해 사용할 객체를 만드는 과정으로 변수 및 객체를 송수신할 데이터의 자료형에..

Programming 2022.04.29

Resample, 시간대, 월, 년, 일별 데이터 값 계산

안녕하세요! 이번에는 pandas. resample에 관련한 코드를 한 번 정리해보았습니다:) 호호. 우선 파라미터 값 부터. DataFrame.resample(rule, axis=0, closed=None, label=None, convention='start', kind=None, loffset=None, base=None, on=None, level=None, origin='start_day', offset=None) 시간 데이터를 분석할 때 연, 월, 일 단위로 다시 열로 만들어서 분석하는 경우도 있는데 resample 함수를 활용하면 rawdata만 활용해서 분석할 수 있어서 좀 더 편리합니다. 년도-월-일로 되어 있던 데이터에서 년도를 추출하고 해당 평균과 관련해서 bar graph를 만들어본..

Python 2022.04.28

SPSS) Syntax 사용법

SPSS의 장점이라고 하면 그래픽 인터페이스 형태로 데이터를 분석할 수 있게 해서, SAS와 같이 코드를 직접 치지 않고 데이터를 분석할 수있다는 것이다. 그런데 코드도 칠 수 있다. syntax라는 기능을 이용하는 것인데, 이 syntax 코드는 다른 프로그래밍 언어와 좀 다른 것 같아서 관련한 자료를 보면 좋다. syntax 공식 매뉴얼은 제일 하단에 첨부되어 있다. SPSS를 사용할 때 이전에 2x2 ANOVA분석을 했던 적이 있는데 이 때 주 요인의 차이 이외에도 한 변인이 다른 변인에 어떻게 영향을 미치는지 상호작용이 유의미한지 보기 위해서는 syntax 코드로 작성할 필요가 있어서 알게 되었던 것 같다. syntax는 다음과 같이 간단하게 써볼 수 있다. 데이터를 보기 위해서 descripti..

General-Info 2022.04.26

Colab) Wordcloud 한글이 보이지 않을 때, 워드클라우드 만들기, 주피터 노트북, R프로그램 KoNLP 설치 실패. 워드 클라우드 저장하는 코드

텍스트 분석을 할 때 시각화를 하기 위해서 워드 클라우드를 만들곤 한다. 그런데 JupyterNotebook에서 KoNLP를 실행하려고 하거나 또는 R 프로그램에서 워드클라우드 만들려고 KoNLP 설치하다가 실패하는 경우가 있다. KoNLP 설치하려다가 경로 설정과 자바 다시 설치하고, 운영체제 건들이다가 이래저래 고생하는 경우가 있다. 이거 내 이야기. 난 그랬다 호호. 몇 번 컴퓨터와 싸우고 빌고 서로 많이 힘들어하다가... 다시 화해하고 어떻게든 문제를 해결하려고 하고. 설치 과정이 상당히 험난했다. 워드 클라우드 자체를 만들수 없는 경우, 만들었는데 한글이 깨지는 경우가 있다. KoNLP 해결하는 방법은 예전에 포스팅을 했었는데 사실 파일 설치하고 하는 과정에서 많은 에러가 있어서 이전에는 로컬 ..

Python 2022.04.25

(보안) 시큐어코딩SecureCoding, OWASP, 한국인터넷진흥원, 소프트웨어 보안약점 진단가이드

한국인터넷진흥원에서 소프트웨어 보안 약점과 관련해서 어떤 코드 유형이 나쁜 것인지 제시한 가이드가 있다. 호호. 사실 구현하기에도 빡센 코딩.. 정신이 없어서 제대로 보지 못했는데. 좀 보면 좋을 것 같아서 들고 왔다. 읽어야 할 양이 꽤... 된다. 소프트웨어 보안약점 진단가이드만 봐도 612페이지다...ㅋㅋㅋ 와 가이드만 만든다고 되게 애쓰셨겠다 싶음. 시큐어 코딩 가이드는 1. 입력 데이터 검증 및 표현: 대표적으로는 SQL Injection, XSS 부터. 부적절한 기타 명령어 삽입이나 신뢰되지 않은 URL주소 접속 연결 등 2. 보안 기능: 부적절한 인가, 잘못된 권한 설정, 취약한 암호화 알고리즘 사용, 하드코드된 중요 정보, 취약한 비밀번호, 무결성 검사 없는 코드 다운로드, 쿠키 통한 정보..

Programming 2022.04.24

구글) 판매자 정보를 Google.sellers.json 파일에 게시하시기 바랍니다.

구글 애드센스를 신청하고 난 뒤에 다시 들어가보니, 다음과 같은 경고창이 뜬다. 이게 뭘까. 해서 하단의 작업을 눌렀다. 계정 - 설정 - 계정 정보에 들어가지는데 이 때 판매자 정보 공개 상태가 있었다. 내부용으로 되어 있었는데 공개로 다시 설정해주었다. 비지니스 도메인은 앞의 https:// 나 http:// 를 빼고 google.com 혹은 google.co.kr 과 같이만 작성하면 된다고 한다. 이렇게 다시 클릭하면 자동으로 저장이 되는데 비지니스 도메인은 자동으로 빈칸으로 뜬다. 입력했는데 글자 사라짐... 알아서 저장이 되겠지.. 요즘은 인공지능 시대니깐ㅋㅋㅋ 여기에서 해당 경고창과 관련해서 상세 정보를 볼 수 있다. https://support.google.com/adsense/answer/..

General-Info 2022.04.23

키보드가 안쳐질 때 블루투스 업데이트하기

블루투스가 잘 안먹어서 이상하게 키보드가 제멋대로 쳐져서 새로 업데이트를 해주었다. https://www.intel.co.kr/content/www/kr/ko/support/articles/000005489/wireless.html 인텔® 무선 Bluetooth®용 소프트웨어 및 드라이버 다운로드 인텔® 무선 Bluetooth®용 소프트웨어 및 드라이버 다운로드를 위한 링크. www.intel.co.kr 인텔 사이트에서 최신 블루투스를 다운 받고 설치해주면 블루투스 키보드와 마우스가 잘 잡힌다.

General-Info 2022.04.23

[colab] mp3 두 개 합치기/mov -> mp4 -> wav /audiodisplay

clova api 활용 text가 길면 api 에 문제가 있음.. ㅠㅠ 2개의 mp3로 나눠서 받고 이를 합침 !touch mylist.txt 하고 해당 파일에 들어가서 목록을 확인 file 'script.mp3' file 'script_2.mp3' 두 파일이 있음 !cat mylist.txt 하면 해당 목록이 보임 !ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp3​ 치면 합쳐짐 from IPython.display import Audio sound_file = 'output.mp3' Audio(sound_file, autoplay=True) 로 확인할 수 있었음 !ffmpeg -i script.mp3 -i script_2.mp3 -filter_co..

Python 2022.04.23

[java] 이클립스에서 워크스페이스 설정해도 프로젝트가 보이지 않을 때, Eclipse, Workspace, Package explorer

Eclipse 에서 워크스페이스 설정해도 package explorer가 보이지 않을 때는! 다음 과 같은 2가지 경우 일수도... 1. 번 방법 window - show view - package explorer 2. 번 방법 file - import - general -existing project into Workspace 에서 경로 다시 설정해 주면 된다. 그 외는 다시 열심히 구글링...!

Programming 2022.04.23

(보안) SQL Injection, XSS(Cross Site Script), 2021 OWASP top 10

대표적인 웹 애플리케이션의 보안 취약점. 한국인터넷진흥원에서 보안 약점 가이드를 볼 수 있게 해두었다. SQL Injection은 OWASP top10의 상위권에 있는 것을 볼 수 있다. 여기에서 봐야 할 건. 2017년도에 1위에 있던 injection 이 Cross-Site Scripting(XSS)와 합쳐져서 3위로 올라갔다. 둘 다 악의적인 외부 입력값에 의해서 보안 약점이 나타나는 특징이 있어서 묶은 것 같다. 입력 데이터를 검증는 부분을 테스트 하는 건 꼭 필요할 것 같다. 보안하기 위해 보통 외부의 입력이 쿼리문의 구조를 변경하지 못하도록 객체를 따로 설정해준다. import java.util.regex.Matcher; import java.util.regex.Pattern; final Pa..

Programming 2022.04.23

to_csv, to_excel 파라미터, 판다스 엑셀 저장하기

pandas to_csv 파라미터 값. sep 이 기본적으로 ',' 로 되어 있다는 것에 주목, 그리고 encoding 은 한글이 있다면 깨지지 않게 지정해주기. sep값은 보통 tab으로도 많이 하고 ,로도 많이 작성한다. 만약 숫자 데이터가 있다면 1,000 표시처럼 중간에 ,가 들어가 있는지 확인하고 저장해주어야 한다. 아니면 다시 불러올 때 , 기준으로 데이터 파싱할 때 데이터를 잘못 파싱할 수 있다. def to_csv(path_or_buf: (FilePathOrBuffer[AnyStr] | None)=None, sep: str=',', na_rep: str='', float_format: (str | None)=None, columns: (Sequence[Hashable] | None)=Non..

Python 2022.04.22

Pandas DataFrame 만들기

def __init__(data=None, index: (Axes | None)=None, columns: (Axes | None)=None, dtype: (Dtype | None)=None, copy: (bool | None)=None) 파이썬 판다스를 이용하면 표 형태의 데이터를 다룰 수 있다는 장점이 있다. 그런데 이러한 표 형태를 만들기 위해서는 뼈대를 잘 만들어야 한다. 인덱스엔 뭘 넣고, 해당 데이터엔 뭐가 들어가는지. 데이터는 어떻게 나열할 것인지 등을 세워야 한다. 보통은 엑셀과 CSV로 만들어진 데이터를 불러와서 index가 무엇인지 지정하는 코드를 친다. 한국어 데이터 경우에는 encoding ='euc-kr' 이나 encoding='utf-8'이 붙는다. pd.read_csv('../..

Python 2022.04.22

Pandas) 선 겹쳐 그리기, 다양한 선 겹치게 그래프 만들기

선 여러개 겹쳐그리기 할 때는 df['a']만 하기 보다는 df[['a', 'b']]하는 법도 있었다. df[['a','b']].plot(figsize=(12,5)).autoscale(axis='x',tight=True); 추가로, 선을 여러개 다양하게 만들어서 겹쳐그리기 위해서는 import matplotlib.pyplot as plt fig = plt.figure(figsize=(12,5)) ax = fig.add_subplot() ax.plot(xvalue,a_data,label='A', lw=3, ls=":", c='r') ax.plot(xvalue,b_data,marker='o',label='B', c='g') ax.plot(xvalue,c_data,marker='x',label='C', c='..

Python 2022.04.21

Pandas) read_csv 데이터 불러올 때 date 형태로 parsing하기, 인덱스 설정하기, 데이터 유형 변경astype

인덱스 설정은 pd.read_csv로 불러올 때 index_col = '열 이름'으로 설정할 수 있다. data = pd.read_csv('../Data.csv', index_col='Date') 다음과 같이 설정할 수 있음. 그런데 문제는 년도-월-일 의 Date형태인 경우에는 해당 데이터 타입을 명시해주어야 한다. 그렇지 않으면 그냥 object로 인식해서 날짜 계산하기 어렵다. 여러가지 방법이 있다. 하나는 boolean으로 인덱스를 자동으로 datetime으로 설정하는 방법. pd.read_csv('../Data.csv', index_col='Date', parse_dates=True) 또 구체적으로 어떤 행인지 작성해주는 방법도 있다. 리스트 형태라서 만약 a열도 시간-분-초 형태로 적힌 데이터..

Python 2022.04.20

[데이터 시각화] matplotlib, 그래프 범례 밖으로 넣기, 산점도 색깔 넣기, 그림크기 변경figsize

Pandas에서 내장되어 있는 데이터 시각화 도구 툴을 간단하게 보겠습니다~! 우선 라이브러리 불러오기 import numpy as np import pandas as pd %matplotlib inline %matplotlib 이 부분은 jupyter notebook에서 그래프가 바로 나타나게 하는 코드이다. 주피터 노트북에서만 주로 쓰이니 다른 도구를 쓰고 있다면 해당 코드는 굳이 쓸 필요가 없음. 데이터 시각화 툴인데. 이 중 가장 많이 썼던 건 선 그래프와 산점도, 이상치를 보기 위해서 박스 플럿을 많이 봤었다. 그 외에 히스토그램 또는 막대 그래프도 자주 쓸 것같다. 둘의 차이점은 히스토그램은 연속된 값들을 표현할 때 쓰고, 막대 그래프는 분리된 값들을 표현하는데 쓴다. 이 중에서 잘 쓰고 중요..

Python 2022.04.19

Pandas) 특정 값, 이름이 있는 행 갯수 찾기, 함수 적용하기, lambda 값

이 부분도 정말 정말 많이 쓰는 기능이다. Apply Function 기능인데, 여러 가지 행 중에 만약 시계라는 단어가 들어가 있는 행만 추출한다던가. 등등 다음과 같이 함수를 짜서 true / false 로 리턴을 받아보자. 이런 식으로 표가 있다면 여기에 저 함수를 적용하면 false와 true값을 적용 받을 수 있다. 따라서 시계가 있는 행이 총 몇 개인지 확인하고 싶다면 sum(df['col4'].apply(findClock)) 이런 식으로 해당하는 행 갯수를 찾아낼 수 있다. true는 1, false 0인 3개, 결과값으로는 1이 이 조건에 해당 한다. 또한 해당 조건에 해당하는 행만 추출하고 싶다면 다음과 같이 .loc[조건]을 넣으면 해당 값이 반환된다. 해당 조건을 제외한 나머지 행을 ..

Python 2022.04.17

Pandas) value_counts(), unique(), sort_values(), groupby()/ ''DataFrame' object has no attribute 'count_values'

데이터 분석을 하기 위해서 이 함수들을 잘 알아두는 것은 중요하다. 가장 많이 팔린 제품은 뭔가요? 그런데 가장 말린 제품의 지역 5군데를 추출하면 뭐가 나오죠? 100개 이상 팔린 제품군으로는 뭐가 있죠? 등등의 질문에 답을 찾기 위해 코드 짤 때 자주 쓸 수 밖에 없다. 1. value_counts() def value_counts(subset: (Sequence[Hashable] | None)=None, normalize: bool=False, sort: bool=True, ascending: bool=False, dropna: bool=True) value_counts는 series 형태로 값을 반환해준다. 표와 같은 데이터 프레임 형식이 아니다는 게 차이점. 이런 식으로 볼 수 있다. 이건 각 ..

Python 2022.04.17

Colab 에서 현재 경로 설정, google Drive 연결, 특정 위치의 데이터 가지고 올 때

개인적으로 현재 노트북 환경설정 건들 필요 없는 colab을 종종 쓴다. 머신러닝할 때 GPU 성능이 필요할 때도 코랩을 썼었다. 프로버전으로 쓰면 잘 돌아가기에 사실 강추다. 주피터 노트북도 설치해서 쓰고는 있는데 버전 맞추고 업데이트 하고 하는데 시간이 너무 낭비되는 것 같아서 빠르게 코랩으로 갈아탔다. 코랩에서 폴더에 있는 파일을 읽을 때 경로 설정해줘야 하는데, google drive를 연결해서 위치 설정을 한다. 다음과 같이 코드를 실행하면 왼쪽에 드라이브가 뜬 걸 볼 수 있다. 현재 위치는 pwd 로 확인 %cd [폴더 경로] 로 경로를 설정한다. 절대 경로로 설정해주었다. 예를 들어, 불러와야 하는 게 example.csv이면 해당 파일 오른쪽 클릭해서 링크주소 복사 해서 붙여넣기 하면 된다..

Python 2022.04.17
반응형