LoginSignup
0
0

More than 1 year has passed since last update.

Azure Cognitive Servicesで提供されているSpeech serviceを使ってみた。

Posted at

はじめに

Azure Cognitive Servicesで提供されているSpeech serviceを使って音声テキスト変換機能を実装する機会があったので、簡単にご紹介したいと思います!

そもそもSpeech Service とは

Speech Serviceとは音声テキスト変換、テキスト読み上げ、音声翻訳を Azureが提供するSpeech CLI、Speech SDK、REST API などを使って簡単にWebアプリ、ツール、デバイスに実装することが出来る便利なサービスです。

音声テキスト変換が提供する機能

以下のような機能が提供されています。
・リアルタイムの音声テキスト変換
オーディオ ストリームまたはローカル ファイルからテキストへの文字起こしまたは翻訳をリアルタイムで行います。

・一括音声テキスト変換
Azure Blob Storage に格納された大量の音声データに対して、音声からテキストへの文字起こしを非同期で行うことができます。

・会話の文字起こし
リアルタイムの音声認識、話者識別、およびダイアライゼーションが有効になります。 話者を区別することができるため、対面会議の文字起こしに最適です。

また、他にも発音や評価する機能やカスタム音声モデルの作成機能などがあります。

音声テキスト変換機能を実装してみる。

音声ファイル(wav形式)をローカル上でテキストに変換してみる。

■実行環境
macOS
python3.8

■実行準備
①Azure sppechサービスの作成。
Azure portalへログインしてCognitive Servicesの音声サービスを立ち上げます。
speech-service.png
音声サービスのデプロイが完了したら、サブスクリプションキーと地域(リージョン)を控えます。(コードを実行する際に利用するため)

key.png

②音声ファイルの準備
・wav形式の音声ファイルを用意します。

③音声変換コードの準備
・下記コードを実行環境に用意します。

voice-to-text.py
import azure.cognitiveservices.speech as speechsdk
import os

#音声サービスの接続情報
speech_subscription = "<サブスクリプションキーを格納>"
speech_region= "<サービスのリージョンを格納>"
language = "ja-JP"

#音声ファイルのパス
voice_file = "<音声ファイルのパスを格納>"

def voice_to_text():
    speech_config = speechsdk.SpeechConfig(subscription=speech_subscription, region=speech_region,speech_recognition_language=language)
    audio_input = speechsdk.AudioConfig(filename=voice_file)
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_input)
    result = speech_recognizer.recognize_once_async().get()
    return result.text


print("音声ファイルの変換を実行中")
text = voice_to_text()
print("音声ファイルの出力:",text)
print("処理終了")

■実行結果の確認

実行結果.
% python3.8 voice-to-text.py
音声ファイルの変換を実行中
音声ファイルの出力: 天気は晴れです。
% 

問題なく、音声ファイルからテキストに起こされていることを確認できました!
今回は非同期の音声テキスト変換でしたので、次回はリアルタイムでの音声テキスト変換をやってみようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0