Amazon Polly를 이용해서 귀로 책을 다듬어주세요.

8656 단어 PollySphinxAWS
자신의 블로그Amazon Polly를 사용하여 책을 다듬는 방법에 대해 간략하게 설명합니다.
2-3일 동안 제작된 Sphinx 확장을 사용했습니다.이 신청서에서도 도구의 사용법을 소개하고, 스핑크스 이외의 도구와 비슷한 변환 기능을 만드는 사람들의 참고를 위해 도구가 무엇을 하는지 소개한다.지금까지 쓸 기회가 없었기 때문에 사실상 AWS를 처음 쓰는 것이다.
창고는 여기 있습니다.BSD 라이센스.
  • Real World HTTP 펴냄
  • SSML은 Amazon Polly를 입력하는 데 사용되는 사운드 합성용 데이터 형식입니다.W3C 규격으로 파나소닉과 토시바 사람들도 규격 제정에 동참했다.Amazon Polly는 해당 서브셋에 해당합니다.
    완성은 이런 느낌.
  • https://github.com/shibukawa/sphinxcontrib-ssmlbuilder
  • 설치하다.


    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
  • 1.2배: 조사의 차이도 주의해야 한다.내용의 오류도 주의해야 한다.
    3
  • 1.5배: 내용에 따라 다르지만 조사의 차이에 주의하지 않는다.
    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를 참조하십시오.
  • https://github.com/shibukawa/sphinxcontrib-ssmlbuilder/blob/master/sphinxcontrib/builder.py
  • 그리고 ffmpeg로 각 단락의 MP3를 결합시킨다.관리가 용이하도록 Sphinx의 책 이름, 저자 이름, 파일 제목, 일련 번호 메타데이터를 부여합니다.이렇게 하면 VLC도 잘 정리할 수 있어요.

    좋은 웹페이지 즐겨찾기