웹 페이지에서 음성 합성 엔진(CoefontAPI) 사용

12183 단어 PythonCoeFontCLOUDWeb
온라인으로 마법사 애플리케이션을 만들고 싶어 API가 있는 편리한 사운드 합성 엔진 코폰트를 사용해 봤다.
Coefont
온라인 음성 합성 엔진(소프트웨어 토크)
누구나 사운드를 등록할 수 있습니다.일부 공식 음성은 무료로 사용할 수 있다
API를 제공하는 자체 제작 소프트웨어에서 간편하게 사용 가능
파이톤으로 해볼게요.
APIKey 및 Access Secret 취득 방법이 보도에 쓰여 있습니다. 저쪽을 보십시오.

파이톤의 코드는 공식 사이트에서 예가 있는데 그렇게 사용해 보세요.Requests 설치pip install requests이번에는 Coefont의 공식 캐릭터인 ARIAL을 사용하겠습니다.
실제 인물의 Coefont을 사용할 때는 규약에 주의해야 한다


소리가 났어요.
웹 페이지에서 사용
Coefont는 한 글자에 0.05엔 정도의 유료 서비스가 필요하기 때문에 일반적으로 공개되는 홈페이지에 APIKey와 Access Secret을 직접 붙이면 좋지 않다.
따라서 CoefontAPI도 웹 페이지에 직접 액세스할 수 없습니다.
그래서 이번에 Google Cloud Fuction으로 웹 페이지와 CoefontAPI를 소개하는 스크립트를 만들었습니다.

여기로 계좌번호 등록하세요.유료 서비스지만 최초 12개월은 무료여서 그 동안 놀았다.아마 GCF만 있으면 그렇게 많은 돈을 쓰지 않을 거예요.
이 페이지의 시작 전 부분을 앞으로 밀고 나가다
페이지 열기Google Cloud Function

함수에 따라 만들고, 트리거에 기본적으로 저장한 다음,
점심시간.9로 변경하고 입구점을 Request로 변경합니다.Http를 통해 액세스할 때 엔트리 포인트 함수 실행하기main.py에 다음을 입력합니다.
main.py
import hmac
import requests
import hashlib
import json
from datetime import datetime, timezone

access_key = "YOUR_ACCESS_KEY"
client_secret = "YOUR_CLIENT_SECRET"

def request(request):
    """Responds to any HTTP request.
    Args:
        request (flask.Request): HTTP request object.
    Returns:
        The response text or any set of values that can be turned into a
        Response object using
        `make_response <http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>`.
    """
    if request.method == 'OPTIONS':
      headers = {
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': 'POST, OPTIONS',
            'Access-Control-Allow-Headers': 'Content-Type',
            'Access-Control-Max-Age': '3600',
        }
      return ('', 204, headers)

    headers = {
        'Access-Control-Allow-Origin': '*',
    }
    if(request.headers['content-type'] == 'application/json'):
      request_json = request.get_json(silent=True)
      if request_json and 'text' in request_json:
          text = request_json['text']
      else:
        return('', 400,headers)
      date: str = str(int(datetime.utcnow().replace(tzinfo=timezone.utc).timestamp()))
      data: str = json.dumps({
        'coefont': '46a81787-af54-4a91-8c5b-3b597066294e',
        'text': text
      })
      signature = hmac.new(bytes(client_secret, 'utf-8'), (date+data).encode('utf-8'), hashlib.sha256).hexdigest()

      response = requests.post('https://api.coefont.cloud/v1/text2speech', data=data, headers={
        'Content-Type': 'application/json',
        'Authorization': access_key,
        'X-Coefont-Date': date,
        'X-Coefont-Content': signature
      })
      if response.status_code == 200:
        return(response.url, 200 , headers)
      else:
        return(str(response.status_code), 500,headers)
    return('', 400,headers)
main.py
    access_key = "YOUR_ACCESS_KEY"
    client_secret = "YOUR_CLIENT_SECRET"
자체 APIkey 및 Client Secret 입력
main.py
    data: str = json.dumps({
        'coefont': '46a81787-af54-4a91-8c5b-3b597066294e',
        'text': text
    })
적절한 CoefontID 설정requirement.txt에 다음 내용을 입력하고 디버깅을 진행합니다.
reqirement.txt
# Function dependencies, for example:
# package>=version
requests==2.24.0
함수를 선택하십시오. 조금만 기다리면 만든 함수를 사용할 수 있기 때문입니다

테스트에서 다음을 입력하려면 누르십시오
test.json
{"text":"てすと"}

출력이 URL로 되돌아오기 때문에 방문한 후 소리를 합성한 wav 파일을 다운로드할 수 있습니다
탭 확인을 트리거하는 URL을 통해 이 함수에 접근할 수 있기 때문에, 다음에 자신의 페이지에서 이전 형식의 json 파일을 이 URL에 Post한 다음 Get으로 되돌아오는 URL에 접근합니다.그리고 다운로드 가능한 wav를 Web Audio API 등으로 재생하면 웹에서 음성 합성 엔진을 사용할 수 있다
끝말
온라인에서 자유롭게 소리를 틀고 싶어 API를 공개하는 코이폰 API를 이용했다.이것을 사용하면 다양한 종류의 소리를 사용할 수 있으니 좋아하는 소리를 찾아서 사용하세요.이 글의 코드는 자유롭게 수정하여 사용할 수 있다.이 보도의 이상한 점을 평론해 주신 것을 환영합니다.

좋은 웹페이지 즐겨찾기