1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

python で音声作成・メモ

Last updated at Posted at 2023-06-19

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ドライブの指定したフォルダに保存されます。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?