ホームページ  >  記事  >  バックエンド開発  >  Python は Alibaba Cloud インターフェースに接続し、リアルタイムオーディオトランスコーディング機能を実現します

Python は Alibaba Cloud インターフェースに接続し、リアルタイムオーディオトランスコーディング機能を実現します

王林
王林オリジナル
2023-07-05 11:13:091174ブラウズ

Python は Alibaba Cloud インターフェイスに接続し、リアルタイム音声文字起こし機能を実装します。

Alibaba Cloud は、音声認識機能を含む豊富な人工知能サービスを提供します。 Alibaba Cloud の API インターフェイスを利用すると、Python を使用してリアルタイムの音声文字起こし機能を実装できます。この記事では、Alibaba Cloud インターフェイスに接続する方法、リアルタイム音声文字起こしに Python を使用する方法、およびコード例を紹介します。

ステップ 1: Alibaba Cloud AccessKey の申請

まず、Alibaba Cloud 公式 Web サイトでアカウントを登録し、Alibaba Cloud API インターフェイスに接続するための AccessKey を作成する必要があります。 Alibaba Cloud コンソール ページで、[AccessKey Management] を選択して AccessKey 管理ページに入ります。 「AccessKeyの作成」ボタンをクリックしてAccessKeyとAccessKeySecretを取得します。

ステップ 2: Alibaba Cloud SDK をインストールする

次に、Alibaba Cloud の音声認識 API インターフェイスを呼び出すために、Alibaba Cloud SDK をインストールする必要があります。コマンドラインを開き、次のコマンドを実行して SDK をインストールします。

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

ステップ 3: Alibaba Cloud リアルタイム音声認識 API を呼び出す

コード内で、関連する

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)

上記のコードでは、Base64 を使用して音声データをエンコードし、accessKeyId、音声データ、その他の音訳パラメータを含む API インターフェイス呼び出しのリクエストが構築されます。 AcsClientのdo_action()メソッドを呼び出してリクエストを送信し、リアルタイム音声認識のタスクIDを取得します。

ステップ 4: リアルタイムの音声文字起こし結果を取得する

リアルタイム音声認識タスクが完了したら、文字起こし結果を取得する必要があります。 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

上記のコードでは、タスクが完了するかタイムアウトになるまで、ポーリングを使用してタスクの結果を取得します。タスクが正常に完了すると、転写された結果の URL を取得し、urllib ライブラリを使用して結果を取得できます。

ステップ 5: リアルタイム音声文字起こしコードを実行する

main 関数では、上記のステップを関数にカプセル化し、文字起こし用の音声データを渡すことができます。ファイルから音声データを読み取り、文字起こし結果をファイルに保存できます。

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

上記は、リアルタイム音声転写関数の完全なコード例です。文字起こしするオーディオ ファイルを準備し、コードを実行した後、音声のリアルタイムの文字起こし結果を取得して、指定したファイルに保存できます。

概要

この記事では、Python を使用して Alibaba Cloud インターフェイスに接続し、リアルタイム オーディオ トランスコーディングを実装する方法を紹介します。 Alibaba Cloud AccessKey を申請し、Alibaba Cloud SDK をインストールし、Alibaba Cloud API インターフェイスを呼び出すことで、Python でリアルタイム音声文字起こし機能を簡単に実装できます。 Alibaba Cloud API を使用する場合、正確な音声文字起こし結果を取得するには、パラメーター設定と結果クエリに注意を払う必要があります。

付録

完全なコード例は、GitHub にあります: [https://github.com/example/transcribe-python](https://github.com/example/transcribe) - Python)

以上がPython は Alibaba Cloud インターフェースに接続し、リアルタイムオーディオトランスコーディング機能を実現しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。