python で音声作成・メモ
Google Colaboratory(Colab)は、機械学習やデータ分析のための無料のクラウドサービスで、Jupyterノートブックの形式でPythonを簡単に実行できます。この記事では、Colabを使用して音声ファイルの作成、そして速度を変更し、その結果をGoogleドライブに保存する方法を説明します。
手順1:音声ファイルを作成し再生する
Google Text-to-Speech(gTTS)を使用して、テキストを音声に変換します。以下のコードをColabで実行してください。
!pip install gTTS
from gtts import gTTS
# 読み上げるテキストのリスト
texts = [
"オースティン・ヘイズはセカンドベースマンのウィット・メリフィールドにポップフライでアウト。",
"アドリー・ラッチマンはスイングで三振し、キャッチャーのダニー・ジャンセンからファーストベースマンのブラディミール・ゲレーロ・ジュニアへ。",
"アンソニー・サンタンデルは四球で出塁。",
"ガナー・ヘンダーソンは左翼手のドールトン・バーショに対するラインドライブのシングルヒット。アンソニー・サンタンデルが得点。",
"ラモン・ウリアスはスイングで三振。",
"ジェームズ・マカンはセカンドベースマンのウィット・メリフィールドからファーストベースマンのブラディミール・ゲレーロ・ジュニアへのゴロでアウト。",
"アダム・フレイザーはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。",
"ケブライアン・ヘイズはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。アダム・フレイザーが得点。",
"ブライアン・レイノルズはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。ケブライアン・ヘイズが得点。",
"コリン・モランはセンターフィールダーのマイケル・A・テイラーに対するフライでアウト。",
"ジェイコブ・スタリングスはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。ブライアン・レイノルズが得点。",
"エリック・ゴンザレスはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。ジェイコブ・スタリングスが得点。",
"フィリップ・エバンスはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。エリック・ゴンザレスが得点。",
"ベン・ギャメルはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。フィリップ・エバンスが得点。",
"ケビン・ニューマンは右翼手のジョージ・ソラーに対するフライでアウト。",
"アダム・フレイザーはセカンドベースマンのウィット・メリフィールドに対するゴロでアウト。",
"ケブライアン・ヘイズはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。",
"ブライアン・レイノルズはセカンドベースマンのウィット・メリフィールドからファーストベースマンのブラディミール・ゲレーロ・ジュニアへのゴロでアウト。",
"コリン・モランはスイングで三振。",
"ジェイコブ・スタリングスはスイングで三振。",
"エリック・ゴンザレスはスイングで三振。",
"フィリップ・エバンスはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。",
"ベン・ギャメルはピッチャーのジェイク・ジュニスに対するゴロのシングルヒット。フィリップ・エバンスが得点。",
"ケビン・ニューマンは右翼手のジョージ・ソラーに対するフライでアウト。"
]
# 各プレイの記述を個別のMP3ファイルに変換
for i, text in enumerate(texts):
tts = gTTS(text, lang='ja')
tts.save(f'play{i+1}.mp3')
上記のコードは、textsリストの各テキストを日本語音声に変換し、それぞれを個別のMP3ファイルとして保存します。
次に、音声ファイルを再生します。以下のコードをColabで実行してください。
from IPython.display import Audio
# 音声ファイルの再生
Audio("play1.mp3")
上記コードは、作成した最初の音声ファイルを再生します。
手順2:Googleドライブをマウントする
GoogleドライブをColabにマウントします。これにより、ColabからGoogleドライブ内のファイルにアクセスしたり、Googleドライブにファイルを保存したりすることができます。以下のコードをColabで実行してください。
from google.colab import drive
drive.mount('/content/drive')
上記コードを実行すると、リンクとともに認証コードの入力を求めるプロンプトが表示されます。リンクをクリックしてGoogleアカウントを選択し、表示された認証コードをコピーしてプロンプトにペーストします。
手順3:Googleドライブに新しいフォルダを作成
次に、音声ファイルを保存するための新しいフォルダをGoogleドライブに作成します。以下のコードをColabで実行してください。
import os
folder_name = "YourFolderName" # フォルダ名を適宜設定してください
folder_path = os.path.join("/content/drive/My Drive", folder_name)
# フォルダが存在しない場合、新規に作成
if not os.path.exists(folder_path):
os.makedirs(folder_path)
上記コードはGoogleドライブのルートに新しいフォルダを作成します。"YourFolderName"を適宜変更して、希望のフォルダ名にしてください。
手順4:音声ファイルの速度を変更し、Googleドライブに保存
最後に、音声ファイルの速度を変更し、作成したフォルダに保存します。このためにはpydubというライブラリを使用します。以下のコードをColabで実行してください。
!pip install pydub
!apt install -y ffmpeg
from pydub import AudioSegment
# textsの各エントリーに対して、音声の速度を変更して新しいファイルに保存します。
for i in range(len(texts)):
# 元の音声ファイルをロード
sound = AudioSegment.from_file(f"play{i+1}.mp3")
# 速度を1.25倍にする
fast_sound = sound.speedup(playback_speed=1.25)
# Googleドライブのフォルダに変更した音声を保存
fast_sound.export(os.path.join(folder_path, f"fast_play{i+1}.mp3"), format="mp3")
上記コードでは、textsというリストの各エントリーに対して、音声の速度を変更し、新しいファイルを作成し、Googleドライブに保存しています。
これで、すべての音声ファイルがGoogleドライブの指定したフォルダに保存されます。