ドルビーを転写.ディープコミュニケーション録音


仮想デジタル会議が1ダースであるこのデジタル時代では、我々は将来の記録のために記録される彼らの多数を見ます.これらの記録には多くの用途があり、ライブに参加できず、トレーニングとして配布し、将来の参考のためにバックアップを取っている人々と共有することも含まれる.しかしながら、当然のためにとられるこれらの記録の1つのアスペクトは、アクセシビリティである.このブログでは、あなたのドルビーから録音を取る方法を示します.通信会議、使用Deepgram をテキストに変換する.
あなたの会議記録のテキストコピーを持つことは、情報を消化する代わりの方法を提供する良い方法です.話し言葉を聞くよりも速く読む人がいる.一部の人々は、会議の1つと同じ第一言語を話すことがありませんし、それを読んで快適です.他の人は聴覚障害かもしれないし、快適さのほとんどの量を読むことを好む.どんな理由があっても、転写生成プロセスを自動化するのが簡単になりたい.ここでは、我々はDolby.io Communications REST APIs 並行してDeepgram’s Pre-recorded Audio API Pythonでは、このプロセスを生成する方法の一例です.

ライブラリのインストール


コーディングを始める前に、これらのAPIを呼び出すための適切なライブラリをすべて確保する必要があります.簡単なPIPコマンドでこれを行うことができます(オペレーティングシステム用の適切なPIPコマンドを使用します).
pip3 install asyncio deepgram-sdk dolbyio-rest-apis
これは両方のドルビーをインストールします.IOとDeepgram SDKSと同様に、Pythonのネイティブ非同期関数ライブラリは、ASSICを呼び出す際に私たちを支援するために2つのSDKを使用します.
また、無料でサインアップするのも良い考えですDolby.io and Deepgram アカウントが既にない場合は、APIの資格情報を取得します.

APIトークンの取得


ドルビーを使用するために.IO通信REST APIは、まず一時アクセストークンを生成する必要があります.これは、トークンが自動的に期限切れになるので、誤ってリークされてから、永久のアカウント資格を防止するためです.これについてもっと学ぶためにdocumentation . この場合、我々は消費者キーと秘密を我々と一緒に満たしたいですcredentials 我々のコミュニケーションAPI(メディアでない)から.次に、get_api_access_token 我々が別の呼び出しをするたびに、我々が新しいトークンを生成することができるように、機能の中で終点.これは、これを処理するための最も安全な方法ではありませんが、我々は道の下に期限切れの資格情報に実行されないことを保証します.もっと学ぶためにsecurity best practices guide .
from dolbyio_rest_apis.communications import authentication
import asyncio

# Input your Dolby.io Communications Credentials here
CONSUMER_KEY = "<DOLBYIO_CONSUMER_KEY>"
CONSUMER_SECRET = "<DOLBYIO_CONSUMER_SECRET>"

# Create a function that will generate a new api access token when needed
async def gen_token():
    response = await authentication.get_api_access_token(CONSUMER_KEY, CONSUMER_SECRET)
    return response['access_token']

print(f"Access Token: {await gen_token()}")

会議IDの取得


今、我々はドルビーを呼び出すことができます.IO APIは、最初に我々が記録したい記録の内部会議IDを取得します.私たちは、単にget_conferences 我々のトークンで終点.
from dolbyio_rest_apis.communications.monitor import conferences

response = await conferences.get_conferences(await gen_token())
# Save the most recent conference. Change '-1' to whichever conference you want.
confId = response['conferences'][-1]['confId']
print(confId)
このコードサンプルでは、パラメータを使用しています.['conferences'][-1]['confId'] . これは、“- 1”配列値によって注意されるようにリスト内の最新の会議だけを引きます.すべての新しく生成された会議で働くためにこれを自動化するならば、これは問題でありません.しかし、あなたが特定の会議でこれを行うために探しているなら、我々はthe optional parameters in the get_conferences endpoint 希望する会議IDを取得する.

録音を得る


会議のIDを手で、我々は現在、会議のオーディオファイルを含むURLを生成するエンドポイントを呼び出すことができます.このコードサンプルでは、Dolby Voice 会議のため、エンドポイントを使用しますGet the Dolby Voice audio recording . あなたはドルビーボイスを使用していない知っている場合は、使用することができますthis endpoint 代わりに.我々はオーディオとビデオの両方の代わりに会議のオーディオトラックを取得していることに注意してください.これは、転写ソフトウェアとの最大ファイル互換性のためです.また、生成されたURLも一時的であることに注意してください.
from dolbyio_rest_apis.communications.monitor import recordings

# Save only the mp3 file and return as a URL.
# If your conference does not use Dolby Voice, use 'download_mp3_recording' instead.
# https://github.com/dolbyio-samples/dolbyio-rest-apis-client-python/blob/main/client/src/dolbyio_rest_apis/communications/monitor/recordings.py
response = await recordings.get_dolby_voice_recordings(await gen_token(), confId)
recording_url = response['url']
print(recording_url)
図解するhere is an example conference recording 上記のコードから生成される転写のために作られます.

深さによる変換


DeepGramはローカルファイルで動作しますが、presignedされた記録URLは私達に多くのステップをダウンロードして、安全なサーバーにファイルをアップロードする必要の手間を避けることができます.URLで、我々はそれらのステップをスキップすることができて、直接彼らのPython Getting Started Guide . コードは、Punctuation feature , しかし、容易にAの品揃えで拡大することができましたthe many features Deepgram provides .
from deepgram import Deepgram

# Your Deepgram API Key
DEEPGRAM_API_KEY = '<DEEPGRAM_API_KEY>'

# Location of the file you want to transcribe. Should include filename and extension.
FILE = recording_url

async def main():

  # Initialize the Deepgram SDK
  deepgram = Deepgram(DEEPGRAM_API_KEY)

  # file is remote
  # Set the source
  source = {
    'url': FILE
  }

  # Send the audio to Deepgram and get the response
  response = await asyncio.create_task(
    deepgram.transcription.prerecorded(
      source,
      {
        'punctuate': True
      }
    )
  )

  # Write only the transcript to the console
  print(response['results']['channels'][0]['alternatives'][0]['transcript'])

try:
  await main()
  # If not running in a Jupyter notebook, run main with this line instead:
  # asyncio.run(main())
except Exception as e:
  exception_type, exception_object, exception_traceback = sys.exc_info()
  line_number = exception_traceback.tb_lineno
  print(f'line {line_number}: {exception_type} - {e}')
DeepGramレスポンスは我々のスピーチに関連した多くのdatapointsを提供します、しかし、ファイルの転写だけを引くために、我々は呼び出しています['results']['channels'][0]['alternatives'][0]['transcript'] . あなたのニーズに最も関連しているものを生成するために応答を変更すること自由に感じなさい.上記のサンプルについて、転写結果は次の通りである.

Following text is a transcription of the s en of the parchment declaration of independence. The document on display in the rot the national archives Museum. The spelling and punctuation reflects the originals.


次の手順


これは非常に基本的な方法あなたの会議の録音を転写を開始する方法です.私たちは、あなたがこれらのツールを使用することから得る利益を最大にするためにあなたの特定のユースケースに合うようにこれを広げることに若干の時間を投資することを強く提案します.
前に述べたように、我々はDeepgramは、転写プロセスに追加することができます追加機能の面で提供しているものを見てみることをお勧めします.例えば、

  • Diarization 誰が会議で複数の人々が何を言っている差別化することができます.

  • Named Entity Recognition //Keywords 名前と適切な名詞のようなものの前の情報を提供することによって精度を高めるために.
  • 例記録の転写は完全ではなかった.不完全な記録環境、混乱した音声パターン、および例としての圧縮を含む、これには多くの理由がある.より良いチャンスを転写アルゴリズムを与えるために、1つのオプションを使用することができますDolby.io Media Enhance API それを転写に送信する前にオーディオをクリーンアップしようとする.
    あなたが自動的にすべての記録が終わった後に転写を生成する場合は、我々はwebhooks あなたのための手動介入を削除するには.実際にはRecording.Audio.Available event イベント本体自体の中に記録URLを提供します.そして、それを得るために必要なステップの数を減らします.
    一つの最終的なアイデアは、あなたがどんな理由ででもビデオファイルを準備するだけであるならば、あなたはDolby.io Media Transcode API ビデオファイルを転写サービスで受け入れられた形式に変換するには.
    ソースコードファイルはJupyter ノートthis GitHub repository . あなたがどんな問題にでも走るならば、躊躇しないでくださいcontact our support team ヘルプ、および幸運のコーディング!