라즈베리파이는 vlc player를 사용하기 때문에 python-vlc를 통해 음성 파일을 실행하는 파이썬 코드를 만들어보겠습니다
https://scv-life.tistory.com/105
파이썬과 VLC 미디어 플레이어
VLC 미디어 플레이어 VLC 미디어 플레이어를 아시나요? VLC는 VideoLAN 프로젝트에서 개발한 무료 오픈소스 크로스플랫폼의 미디어 플레이어 입니다. www.videolan.org/vlc/index.ko.html VLC 미디어 재생기 공
scv-life.tistory.com
https://scv-life.tistory.com/106
파이썬으로 VLC미디어플레이어를 컨트롤 하기 기초편
이전글: scv-life.tistory.com/105 파이썬과 VLC 미디어 플레이어 VLC 미디어 플레이어 VLC 미디어 플레이어를 아시나요? VLC는 VideoLAN 프로젝트에서 개발한 무료 오픈소스 크로스플랫폼의 미디어 플레이어
scv-life.tistory.com
https://scv-life.tistory.com/111
파이썬으로 VLC미디어플레이어 컨트롤하기 고급편
2021.05.03 - [강의강좌 정리/파이썬 YouTube 뮤직 플레이어 개발강좌] - 파이썬으로 VLC미디어플레이어를 컨트롤 하기 scv-life.tistory.com/106 파이썬으로 VLC미디어플레이어를 컨트롤 하기 이전글: scv-life.t
scv-life.tistory.com
굉장히 세세하게 알려주십니다
일단 vlc player가 있는 상황이어야 합니다! 라즈베리파이에는 기본으로 있는 것으로 압니다..
1. python-vlc 패키지를 깔기
pip3 install python-vlc
설치 완.
이제 라즈베리파이의 Thonny로 들어갑니다.
그 전에!!!!!
음성 파일을 만들고 싶다면
2023.10.29 - [라즈베리파이4] - [라즈베리파이4] gtts로 텍스트를 음성으로 변환하기
[라즈베리파이4] gtts로 텍스트를 음성으로 변환하기
gtts 패키지를 사용하여 텍스트를 음성으로 변환시켜보겠습니다. https://happylie.tistory.com/137 [Python] 파이썬 gtts 모듈을 이용한 텍스트 음성 변환 방법 파이썬 gtts 모듈을 이용한 텍스트 음성 변환 방
dogfoot1.tistory.com
2. 파이썬 코드를 통해 음성 파일을 트는 코드 만들기
import vlc
p = vlc.MediaPlayer("/home/kimlab/Music/hello.mp3")
p.play()
아니 이렇게 간단할 수가!!
하지만 문제가 있었습니다.
import vlc
p = vlc.MediaPlayer("/home/kimlab/Music/hello.mp3")
p.play()
m = vlc.MediaPlayer("/home/kimlab/Music/hi.mp3")
m.play()
이렇게 하면, 두 음성 파일이 중복되어서 나옵니다
어떻게 해야 하나의 음성 파일이 끝나면 다음 음성 파일이 나오게 할 수 있을까요?
바로 is_playing()과 time.sleep()와 리스트를 이용합니다.
1. is_playing()
음성 파일이 출력 되고 있다면 1을 반환, 출력 되지 않았다면 0을 반환
2. time.sleep(숫자)
숫자 초 만큼 기다립니다.
만약 time.sleep(1)이라면 1초동안 중지합니다
https://devpouch.tistory.com/35
[Python] 파이썬 일시정지 sleep 함수 사용법
Python sleep 함수 사용법 time 라이브러리의 sleep 함수를 사용하면 일정 시간동안 프로세스를 일시정지할 수 있다. sleep(10)이라고 하면, 10초간 프로세스를 중지한다라는 의미다. 실수단위로도 지정
devpouch.tistory.com
파이썬에서 음성파일을 로드하는 동안(약 1초 정도) is_playing()이 0이 나오기 때문에 1초 중지 해야 합니다.
3. list 형태
리스트 안에 음성 파일의 제목을 입력해서 리스트의 인덱스를 1씩 더하면서 사용합니다.
이 세가지를 이용하면
import vlc
import time
arr = ['hi', 'hello','goodbye']
cnt = 0
p = vlc.MediaPlayer(f"/home/kimlab/Music/{arr[cnt]}.mp3")
while(cnt<len(arr)):
if p.is_playing() == 1:
pass
else:
p = vlc.MediaPlayer(f"/home/kimlab/Music/{arr[cnt]}.mp3")
p.play()
time.sleep(1)
cnt += 1
이렇게 되면 음성이 중복되지 않고 하나씩 출력 됩니다
성공~~~
'라즈베리파이4' 카테고리의 다른 글
라즈베리파이 yolov5 설치 오류 프로파일링 (1) | 2024.01.06 |
---|---|
[라즈베리파이4] GPIO를 이용하여 버튼 입력 받기 (0) | 2023.11.03 |
[라즈베리파이4] gtts로 텍스트를 음성으로 변환하기 (2) | 2023.10.29 |
[라즈베리파이4] 라즈베리파이4에 yolov5 설치하기 업데이트 (0) | 2023.10.28 |
[라즈베리파이4] 라즈베리파이 모니터를 이용하여 VNC 접속하기 (2) | 2023.10.24 |