>  기사  >  백엔드 개발  >  Python은 Alibaba Cloud 인터페이스에 연결하여 실시간 오디오 트랜스코딩 기능을 실현합니다.

Python은 Alibaba Cloud 인터페이스에 연결하여 실시간 오디오 트랜스코딩 기능을 실현합니다.

王林
王林원래의
2023-07-05 11:13:091223검색

Python은 Alibaba Cloud 인터페이스에 연결하여 실시간 오디오 전사 기능을 구현합니다.

Alibaba Cloud는 음성 인식 기능을 포함한 풍부한 인공 지능 서비스를 제공합니다. Alibaba Cloud의 API 인터페이스 덕분에 Python을 사용하여 실시간 오디오 전사 기능을 구현할 수 있습니다. 이 기사에서는 Alibaba Cloud 인터페이스에 연결하는 방법, 실시간 오디오 전사를 위해 Python을 사용하는 방법, 코드 예제를 제공하는 방법을 소개합니다.

1단계: Alibaba Cloud AccessKey 신청

먼저 Alibaba Cloud 공식 웹사이트에 계정을 등록하고 Alibaba Cloud API 인터페이스에 연결하기 위한 AccessKey를 만들어야 합니다. Alibaba Cloud 콘솔 페이지에서 "AccessKey Management"를 선택하여 AccessKey 관리 페이지로 들어갑니다. AccessKey 및 AccessKeySecret을 얻으려면 "Create AccessKey" 버튼을 클릭하세요.

2단계: Alibaba Cloud SDK 설치

다음으로 Alibaba Cloud의 음성 인식 API 인터페이스를 호출하려면 Alibaba Cloud SDK를 설치해야 합니다. 명령줄을 열고 다음 명령을 실행하여 SDK를 설치합니다.

pip install aliyun-python-sdk-core
pip install aliyunsdkcore

3단계: Alibaba Cloud 실시간 음성 인식 API 호출

코드에서 Alibaba Cloud SDK의 관련 라이브러리를 소개하고 설정해야 합니다. AccessKey 및 AccessKeySecret:

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.profile import region_provider

accessKeyId = "your_access_key"
secret = "your_access_secret"

regionId = "cn-hangzhou"
region_provider.add_endpoint('asr', regionId, 'asr.aliyuncs.com')

client = AcsClient(accessKeyId, secret, regionId)

다음으로 전사 인식을 위한 매개변수와 오디오 데이터를 설정하고 실시간 음성 전사를 위해 Alibaba Cloud API 인터페이스를 호출해야 합니다.

import base64
import json

def transcribe_audio(audio_data):
    request = CommonRequest()
    request.set_domain('asr.cn-hangzhou.aliyuncs.com')
    request.set_version('2019-08-01')
    request.set_product('nls-filetrans')
    request.set_action_name('SubmitTask')

    audio_base64 = base64.b64encode(audio_data).decode('utf-8')
    task = {
        "app_key": accessKeyId,
        "file_link": "",
        "content": audio_base64,
        "enable_words": False,
        "enable_syllable": False,
        "enable_format": False,
        "enable_punctuation": False,
        "result_url": "",
        "result_format": "json"
    }
    request.add_body_params('task', json.dumps(task))

    response = client.do_action(request)
    result = json.loads(response.decode('utf-8'))
    taskId = result["data"]["taskId"]
    return taskId

위 코드에서는 base64를 사용하여 오디오 데이터를 생성하고 accessKeyId, 오디오 데이터 및 기타 전사 매개변수를 포함하여 API 인터페이스 호출 요청을 구성합니다. AcsClient의 do_action() 메서드를 호출하여 요청을 보내고 실시간 음성 인식 작업 ID를 얻습니다.

4단계: 실시간 음성 전사 결과 가져오기

실시간 음성 인식 작업을 완료한 후에는 전사 결과를 받아야 합니다. Alibaba Cloud는 작업 결과를 쿼리하기 위한 API 인터페이스를 제공하여 이 인터페이스를 사용하여 작업 결과를 얻을 수 있습니다.

def get_transcribe_result(taskId):
    request = CommonRequest()
    request.set_domain('asr.cn-hangzhou.aliyuncs.com')
    request.set_version('2019-08-01')
    request.set_product('nls-filetrans')
    request.set_action_name('GetTaskResult')

    request.add_query_param('taskId', taskId)

    response = client.do_action(request)
    result = json.loads(response.decode('utf-8'))
    if result["code"] == 200000:
        status = result["data"]["taskStatus"]
        if status == 'Success':
            result_url = result["data"]["result"]["resultUrl"]
            response = urllib.request.urlopen(result_url)
            transcript = response.read().decode('utf-8')
            return transcript
    return None

위 코드에서는 작업이 완료되거나 시간 초과될 때까지 폴링을 사용하여 작업 결과를 얻습니다. 작업이 성공적으로 완료되면 복사된 결과의 URL을 얻고 urllib 라이브러리를 사용하여 결과를 얻을 수 있습니다.

5단계: 실시간 오디오 트랜스코딩 코드 실행

주 함수에서 위 단계를 함수로 캡슐화하고 전사를 위해 오디오 데이터를 전달할 수 있습니다. 파일에서 오디오 데이터를 읽고 전사 결과를 파일에 저장할 수 있습니다.

def main():
    audio_path = "audio.wav"
    audio_data = read_audio_file(audio_path)

    taskId = transcribe_audio(audio_data)
    print("Task ID:", taskId)

    transcript = None
    while transcript is None:
        transcript = get_transcribe_result(taskId)
        time.sleep(2)

    transcript_path = "transcript.txt"
    with open(transcript_path, "w") as f:
        f.write(transcript)
    print("Transcript saved to:", transcript_path)

if __name__ == "__main__":
    main()

위는 실시간 오디오 전사 기능의 전체 코드 예입니다. 녹음할 오디오 파일을 준비할 수 있으며, 코드를 실행한 후 오디오의 실시간 녹음 결과를 얻어 지정된 파일에 저장할 수 있습니다.

요약

이 글에서는 Python을 사용하여 Alibaba Cloud 인터페이스에 연결하여 실시간 오디오 전사 기능을 구현하는 방법을 소개합니다. Alibaba Cloud AccessKey를 신청하고 Alibaba Cloud SDK를 설치하고 Alibaba Cloud API 인터페이스를 호출하면 Python에서 실시간 오디오 전사 기능을 쉽게 구현할 수 있습니다. Alibaba Cloud API를 사용할 때 정확한 오디오 전사 결과를 얻으려면 매개변수 설정 및 결과 쿼리에 주의해야 합니다.

Appendix

전체 코드 예제는 GitHub에서 찾을 수 있습니다: [https://github.com/example/transcribe-python](https://github.com/example/transcribe-python)

위 내용은 Python은 Alibaba Cloud 인터페이스에 연결하여 실시간 오디오 트랜스코딩 기능을 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.