Amazon Polly를 이용해서 귀로 책을 다듬어주세요.
2-3일 동안 제작된 Sphinx 확장을 사용했습니다.이 신청서에서도 도구의 사용법을 소개하고, 스핑크스 이외의 도구와 비슷한 변환 기능을 만드는 사람들의 참고를 위해 도구가 무엇을 하는지 소개한다.지금까지 쓸 기회가 없었기 때문에 사실상 AWS를 처음 쓰는 것이다.
창고는 여기 있습니다.BSD 라이센스.
완성은 이런 느낌.
설치하다.
Sphinx가 설치된 경우 다음 명령을 사용하여 설치합니다.$ pip install sphinxcontrib-ssmlbuilder
AWS가 접근하는 라이브러리의boto3과 AWS의 명령행 도구를 사용하는awscli가 설치되어 있지 않으면 들어갑니다.그리고 ffmpeg를 사용해야 하기 때문에 설치해 두세요.# MacPortsの場合
$ sudo port install ffmpeg
AWS 콘솔의 IAM에서 Polly를 사용하는 계정을 만듭니다.나는 폴리라는 이름을 지었다.Amazon Polly가 사용할 수 있는 구역(저는 US-West-Oregon)을 선택하고 Amazon Polly의 접근권(Read Only)을 추가합니다.여기에 쓰인 것은 오리지널 발음 설정 등을 올리기 위한 것이지만, 일본어는 지원되지 않는 것 같아서 읽으면 충분하다.
Real World HTTP의 머리말(11MB/27점/MP3)
가능하다면awscongiure 명령을 사용하여 로컬에서 이 계정의 접근 카드를 만들 것입니다.이맘때 이름은 Sphinx로
sphinx-quickstart 명령을 사용하여 문서의 프로젝트 폴더를 만든 후 설정 파일(conf.py)에 다음 ssmlbuilder용 설정을 추가합니다.extensions = ['sphinxcontrib.ssmlbuilder']
# you should register the following user name
# via aws configure.
ssml_polly_aws_profile = "polly" # AWSのプロファイル
ssml_polly_apply_docnames = "*" # どのソースファイルを変換するか
# for Japanese
ssml_language = 'ja-JP' # 言語
ssml_polly_aws_voiceid = 'Mizuki' # 使いたい音声(現在日本語はMizukiのみ)
모든 원본 파일의 변환을 지정하지만, 실제 Makefile에서는 다 쓴 파일을 보낼 수 있습니다.TARGET = ""
.PHONY: ssml
ssml:
$(SPHINXBUILD) -b ssml $(ALLSPHINXOPTS) $(BUILDDIR)/ssml -D ssml_polly_apply_docnames=$(TARGET)
@echo
@echo "Build finished. The SSML files are in $(BUILDDIR)/ssml."
이렇게 집행하다.$ make ssml TARGET=preface
sphinx-build -b ssml -d _build/doctrees . _build/ssml -D ssml_polly_apply_docnames=preface
Running Sphinx v1.6
loading translations [ja]... done
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [ssml]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.
build succeeded.
ssml_polly_aws_profile: polly
ssml_polly_apply_docnames: preface
audio output folder: polly
ssml_polly_aws_voiceid: Mizuki
Found credentials in shared credentials file: ~/.aws/credentials
polly.synthesize_speech for preface-1.ssml (1/18)
polly.synthesize_speech for preface.1-1.ssml (2/18)
polly.synthesize_speech for preface.4-1.ssml (3/18)
polly.synthesize_speech for preface.3-1.ssml (4/18)
:
polly.synthesize_speech for preface.5-1.ssml (18/18)
concatinating MP3 fragments: preface.mp3 (1/1)
:
Build finished. The SSML files are in _build/ssml.
단련된 성과
재생성 속도를 자세히 설정할 수 있는 VLC는 Mac에서나 Android에서나 사용됩니다.오류가 발견되면 언제든지 일시 중지되며 Google Keep에 기록됩니다.출퇴근 거리가 길고 횡단보도가 가지런해서 걸으면서 듣는다.자전거 못 타요.
블로그에도 썼는데 미세한 조사의 차이는 눈으로 보는 것보다 귀로 듣는 것이 더 이해하기 쉽다.이외에도 같은 내용을 반복해 정의 없이 설명하기 시작한 부분, 무슨 말을 하고 싶은지 잘 알지 못하는 부분도 있었다.
하지만 속도를 높이면 시간을 절약할 수 있지만 오류를 발견하기는 어렵다.스피드 플레이 연습이라면 조금 더 빨라도 괜찮겠죠.나는 듣기만 하면 3.5배 정도 청력을 연습했지만 퇴고할 때 천천히 보지 않으면 소용이 없다.나의 상황은 다음과 같은 느낌이다.
3
$ pip install sphinxcontrib-ssmlbuilder
# MacPortsの場合
$ sudo port install ffmpeg
extensions = ['sphinxcontrib.ssmlbuilder']
# you should register the following user name
# via aws configure.
ssml_polly_aws_profile = "polly" # AWSのプロファイル
ssml_polly_apply_docnames = "*" # どのソースファイルを変換するか
# for Japanese
ssml_language = 'ja-JP' # 言語
ssml_polly_aws_voiceid = 'Mizuki' # 使いたい音声(現在日本語はMizukiのみ)
TARGET = ""
.PHONY: ssml
ssml:
$(SPHINXBUILD) -b ssml $(ALLSPHINXOPTS) $(BUILDDIR)/ssml -D ssml_polly_apply_docnames=$(TARGET)
@echo
@echo "Build finished. The SSML files are in $(BUILDDIR)/ssml."
$ make ssml TARGET=preface
sphinx-build -b ssml -d _build/doctrees . _build/ssml -D ssml_polly_apply_docnames=preface
Running Sphinx v1.6
loading translations [ja]... done
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [ssml]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.
build succeeded.
ssml_polly_aws_profile: polly
ssml_polly_apply_docnames: preface
audio output folder: polly
ssml_polly_aws_voiceid: Mizuki
Found credentials in shared credentials file: ~/.aws/credentials
polly.synthesize_speech for preface-1.ssml (1/18)
polly.synthesize_speech for preface.1-1.ssml (2/18)
polly.synthesize_speech for preface.4-1.ssml (3/18)
polly.synthesize_speech for preface.3-1.ssml (4/18)
:
polly.synthesize_speech for preface.5-1.ssml (18/18)
concatinating MP3 fragments: preface.mp3 (1/1)
:
Build finished. The SSML files are in _build/ssml.
재생성 속도를 자세히 설정할 수 있는 VLC는 Mac에서나 Android에서나 사용됩니다.오류가 발견되면 언제든지 일시 중지되며 Google Keep에 기록됩니다.출퇴근 거리가 길고 횡단보도가 가지런해서 걸으면서 듣는다.자전거 못 타요.
블로그에도 썼는데 미세한 조사의 차이는 눈으로 보는 것보다 귀로 듣는 것이 더 이해하기 쉽다.이외에도 같은 내용을 반복해 정의 없이 설명하기 시작한 부분, 무슨 말을 하고 싶은지 잘 알지 못하는 부분도 있었다.
하지만 속도를 높이면 시간을 절약할 수 있지만 오류를 발견하기는 어렵다.스피드 플레이 연습이라면 조금 더 빨라도 괜찮겠죠.나는 듣기만 하면 3.5배 정도 청력을 연습했지만 퇴고할 때 천천히 보지 않으면 소용이 없다.나의 상황은 다음과 같은 느낌이다.
3
3
3
그리고 강제로 이뤄지다 보니 시간을 예측하기 쉽고 집중력이 부족해 다른 일을 조사하기 시작하는 일도 쉽지 않다.규칙 파일 같은 거 만들 필요 없어.
내부 구조
프로세스 처리
Polly의 입력은 1500자(SSL의 제어 문자를 포함하지 않음)만 받을 수 있기 때문에 분할한 후 이 분량으로 출력한 다음에 개별적으로 음성화하여 마지막에 합병해야 한다.
처음 사용하기 시작한 1년 동안 공짜 테두리가 많았고, 책도 여러 번 내보냈지만 공짜 테두리가 없었다는 점을 감안하면 서버 접근은 최소한이었다.물론 금액뿐 아니라 여분의 작업을 하지 않고도 실행 시간을 절약할 수 있다.개인적으로는 오사카제비꽃 옵션이 있다면 1만엔가량을 지급하는 것도 수지가 맞지 않지만, 제공하지 않아 아쉽다.
책에서는 단락을 바꾸거나 새 단락을 추가하거나 삭제하는 경우가 종종 있다.따라서 단락에 따라 분할(1000글자가 넘으면 분할할 수 있음)하고 본문 내용의 하쉬를 키로 하여 같은 키가 있는 mp3에서 서버 접근을 건너뜁니다.그리고 읽어도 소용없는 댓글, 표, 소스 코드도 건너뛰었다.
필요한 MP3 파일이 모두 갖추어지면 ffmpeg를 사용하여 MP3로 변환합니다.
텍스트 추출 섹션
일반적인 방문자 모드입니다.Sphinx 빌딩을 만들어 본 사람이라면 익숙하죠.응, 길고 불편해.복제해서 참고로 빌딩을 가지고 노는 느낌이에요.장식적인 정보는 기본적으로 모두 날아가서 텍스트, 장절 제목 따위를 고른다.
전환 부분
아래와 같은 상세한 설정도 할 수 있지만 기본적으로 사용했다.
ssml_skip_block = {'comment': True, 'table': True, 'codeblock': True}
ssml_break_around_section_title = [2000, 1600, 1000, 1000, 1000, 1000]
ssml_break_after_paragraph = 1000
ssml_emphasis_section_title = ['none', 'none', 'none', 'none', 'none', 'none']
ssml_paragraph_speed = 'default'
SSML을 사용하여 재생성 속도와 강조 등을 설정할 수 있습니다.그러나 실험 결과 둘 다 부자연스러워 소리에 대해 아무것도 설정하지 않았다.일반인들이 책을 낭독할 때 제목과 단락을 공백으로 나누는 것이지 장과 같은 제목으로 강도를 바꾸는 것이 아니다.각 장의 제목이 깊을수록 2초, 1.6초, 1초, 정지 시간이 줄어든다.그리고 단락 뒤에도 1초를 추가합니다.방법이 이것밖에 없어요.아니면 실험을 많이 했지만 삭감한 결과가 이거였어.AWS API 섹션을 연속으로 두드리지 않도록 잠시 기다려 주십시오.Go의 시간.Ticker의 API를 참조하십시오.
Reference
이 문제에 관하여(Amazon Polly를 이용해서 귀로 책을 다듬어주세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shibukawa/items/93f080289be327d3ada9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)