見出し画像

コマンドラインツール開発のすすめ

はじめまして!ドットインストールでアルバイトをしている大学生 I です。

これまで Python を使った機械学習とコンピュータビジョンを勉強してきた経験を活かして、ドットインストールでは業務効率化ツールの開発を手掛けています。

業務効率化を行う方法はいくつかありますが、その中でも、コマンドラインツールが便利です。Webアプリケーションのような GUI のあるツールだとマウスで複数回、操作する必要がありますが、コマンドを使用すれば、1 回の操作で終えることができます。

コマンドラインと聞くと「黒い画面…」と腰が引けてしまう方もいらっしゃると思いますが、使いこなせるとすごく便利です。そこで今回は、私がこれまでに作ったツールを紹介してみたいと思います。

レッスンタイトル画像を自動生成するツール

レッスン動画の最初に出てくるタイトル画像ですが、これまでは Figma を使って以下のように画像を作っていました。

  1. レッスンに関する情報を担当者からもらう

  2. そこにあるタイトルやサブタイトルの情報をコピー

  3. Figma でテンプレートにテキストを入れ込む

  4. 画像をエクスポートして担当者に渡す

これが 1、2 回であれば、手間に感じないかもしれません。しかし、ドットインストールではたくさんのレッスンを提供しており、このプロセスを何十回も繰り返すとなると面倒です。実際、担当者とのやりとりも含め、数十分はかかる業務でした。

こうしたタイトル画像を一瞬で生成できるようになりました!

そこでそのあたりを効率化するツールを Python で作りました。具体的にはgspread を使用して、Google スプレッドシート内の必要な情報を取得し、OpenCV を用いて画像を作成しています。

このツールをリリースしたあとは、担当者がコマンド一発で画像を生成できるようになりました(かかる時間は 2, 3 秒です!)。

AIによる文字起こしツール

ドットインストールで提供している動画の文字起こしですが、もともとはスタッフが手作業で行っていました。

文字起こしファイルにはタイムスタンプも入れる必要があり、もろもろのチェックを含めると、1 本の 3 分動画を処理するのに 20 〜 30 分かかることもしばしばでした。

そこで動画ファイルから音声を抽出し、OpenAI が提供する Whisper API を用いて文字起こしをするためのツールを開発しました。

Whisper では、データの時間や文脈の情報をもとにセグメントごとに出力し、各セグメントには開始時間もつけてくれます。そのデータをもとに弊社規定のフォーマットに変換するプログラムを書いたところ、作業時間が大幅に短縮されました。

このような処理を Python で一気に行います

ドットインストールの動画は技術的な用語が多いので、完璧とまではいかないのですが、1 動画の文字起こしにかかる時間は数分から10分程度まで短縮することができました。

文字起こしの表記ゆれチェックツール

以上の文字起こしを行う際には、技術的な用語に際して

  • コントロールキーは Ctrl キー と表記する

  • Javascript は JavaScript と表記する

など、いくつかの注意点があります。しかし、複数人で作業していると、表記ゆれが発生してしまいやすくなります。

そこで間違えやすい表記をスプレッドシートにまとめてみんなで注意するようにしていたのですが、人力では限界がありました。

また、上で紹介した Whisper は表記ゆれまではチェックしてくれないので、そのあたりを自動でチェックするためのツールを Python で開発しました。

社内で決めたルールどおりに表記されているチェックできます

全ての不備を検出することは不可能ではありますが、人による確認と、ツールによる確認の両方を取り入れることで、以前よりも劇的に間違いを減らすことができました。

GitHubでのIssue投稿を自動化

ドットインストールでは毎週の定例会議があります。そのための GitHub Issue をこれまでは手作業で投稿していました。

ただ、タイトルに会議の日時をいれたり、ローテーションで変わる担当をアサインするのが面倒だったり、日付と曜日を間違えていたり、といったこともありました。

会議のたびに Issue を立てるのは面倒でした

そこで GitHub Actions と Python を使ってそのあたりの業務を効率化してみました。特定の曜日になると、3 週間後の Issue を適切なタイトル、適切な担当情報とともに自動で投稿してくれるので「あの会議の Issue 立てたかな…?」とストレスを感じることがなくなって快適です。

さいごに

今回は、社内で使用している業務効率化を目的としたコマンドラインツールについて紹介してみました。これらのツールは全て Python で書いています。

プログラミングを学ぶ方は、HTML / CSS / JavaScript を使った Web 制作に興味を持たれる方が多いのですが、Python を学べばコマンド一発で面倒な作業を片付けてくれるツールが開発できて便利です。

さらに、Python はデータ分析や機械学習でも使用できて、非常に汎用性が高い言語です。ドットインストールでは Python のレッスンも提供しているので、こうしたツールの開発に興味がある方にはとてもおすすめです!


この記事が気に入ったらサポートをしてみませんか?