はじめに
筆者は先月まで通信会社で働いていましたが、無事に転職活動を成功させ、12月からネット広告会社のデータアナリストとして働くことになりました。今回は転職活動を通じて感じていた、**「模擬面接サービスがあったらいいのに」**という思いをアプリにしてみました。百聞は一見にしかずですので、初めに模擬面接アプリのURLとデモ動画を貼っておきます。
模擬面接100本ノック
(PC閲覧推奨、スマホからだと音声が出ません)
作成の動機
一般的に転職活動では、自分がこれまでどういった業務を経験してきたか、どういうスタンスで業務に取り組んできたを面接官に分かりやすく伝えることがとても重要になってくるかと思います。そのため、転職志望者は徹底的に自己分析をし、面接の練習をしたりするかと思いますが、**私はわりと物事をじっくり考えるタイプで、質問に対して即座に回答するような瞬発力があまりないため、面接がとにかく苦手でした。**そこで、Jupyter Notebook上で想定質問をランダム表示して回答の練習をするといった対策をしてきましたが、淡々とし過ぎており、もっと臨場感のある面接練習ができれば良いのにと感じていました。今回は、転職活動中に感じていたこのような思いを解決すべく模擬面接アプリを作ってみました。
アプリの概要
今回作成した模擬面接アプリは、画面上での面接質問文の表示と同時に問題文を合成音声で読み上げてくれるアプリとなっています。画面に表示される面接官の画像等についてはフリー素材を使用しました。また、合成音声の作成にはVOICEVOXという合成音声作成サービスを利用いたしました(このような高品質な音声作成サービスが無償で利用できるのはとても良い時代になったなと感じます)。
アプリ作成はPython WebフレームワークのStreamlitを使用、本番環境へのデプロイはHerokuにて実施しました。Streamlitの概要については以前の記事をご参考下さい。
Streamlitのデプロイについては**Streamlit SharingというSteramlit公式のデプロイサービスもありますが、デプロイしたコードがパブリックなものになってしまう**ため選択から除外、Github上のプライベートレポジトリをデプロイできる**Streamlit Teamsという有料プランもありますが月額3万円ほどかかる**ためこれも選択から除外しました。以上のことから、今回はHerokuをデプロイ先として選定しました。
使用方法
PCからURLにアクセスすると左側に面接設定バーがあります。そこから各種項目を設定していきます。項目選択が完了後に「面接開始」ボタンを押下することで模擬面接が開始します。
各種項目
- 転職/新卒:転職か新卒かで出題する質問内容が変化
- 質問数:7問、12問、17問の3パターンを選択可能
- 質問パターン:定番中心か質問のランダム出題かの2パターンを選択可能
- 志望職種・分野:4つの職種から選択可能、選択した職種に応じて数個ほど専門的な質問が加わる
- 音声:音声あり、なしを選択可能
- 質問文表示:質問文の表示・非表示を選択可能
作成において苦労した点
合成音声の作成
今回使用した合成音声はVOICEVOXを用いて作成しました。VOICEVOXに文章を入力すると自動でイントネーションも概ね良い感じに調整された音声が作成されますがどうしても多少の調整が必要になります。今回の模擬面接アプリにおいてはおよそ100種類程度の合成音声を作成しましたが、これら1個1個の音声のイントネーション調整にかなり時間がかかりました(物好きな人じゃないとやらないと思います)。
音声の自動再生
今回の模擬面接アプリはStreamlitを用いて作成しましたが、Streamlitにて使用できる標準の音声再生ウィジェット(st.audio)が再生ボタンを押下することで音声再生する仕様となっており、自動再生に対応しておらず、アプリ上で音声を自動再生させるための検討に苦慮しました。サードパーティ製の音声再生モジュール(playsound、simpleaudio等)の使用も試しましたが、本番環境においてStreamlitがこれらの音声再生モジュールに対応してないためデプロイエラーとなり使えませんでした。結果として、別の方法によって自動再生を実現しました(詳細は こちらの記事 にて書いております)。
最後に
以上、模擬面接アプリ作成についての記事でした。知人に模擬面接相手になってもらうのもなかなか難しいと思いますので、就活生や転職志望者で面接練習をもっと効率的にやりたいと思っている方がいましたら是非このアプリを活用してみて下さい。