Amazon Web Services ブログ

Initiafy と Amazon Polly でアクセス可能なトレーニングを作成する

これは、Initiafy の Ronan O’Sullivan と Conor McNally によって投稿されたゲストブログです。彼ら自身の言葉を借りれば、「Initiafy は、会社が契約社員、一時労働者、または季節労働者を採用し、仕事を始める前にトレーニングする点で助けとなる、契約社員管理ソフトウェアのリーディングプロバイダーです。このソフトウェアには、世界中に 30 万人以上のユーザーがいます」。

私たちは摩天楼、道路のネットワーク、油田リグ、水力発電のダム、原子力発電所、風力発電機、吊り橋、そして世界を満たしている他の信じがたいような人間工学の偉業に慣れてしまっており、それらの建設のために払われた驚くべき労力を見過ごしてしまうことがあります。こういったプロジェクトはロボットにより構築されたのではありません。それらを生み出すには、プロセスを設計、合理化、改善するのに用いられたテクノロジーに加えて、人々の巨大な労力が必要でした。

Initiafy は、プロジェクトの労働力の要素をより生産的で、効率的なものにします。重工業のプロジェクトは契約社員に依存しており、それには文書、健康と安全、品質管理を扱う管理上の課題が伴っています。Initiafy は、労働者に柔軟性のある仕方でトレーニングを施し、一時労働力全体にわたって高い標準を保つ点で役立つ、オンラインプラットフォームでの契約社員管理システムを提供しています。Initiafy は多くの国で事業を運営しており、様々な国から来た労働者を対象としています。それで、すべての労働者がトレーニングを受けられるようにすることは非常に重要です。

このブログでは、Amazon Polly を、様々な会社が Initiafy のプラットフォーム上で契約社員のために構築したトレーニングコースと完全に統合するという問題を扱っています。Amazon Polly が、コースの構築とコースのコンテンツにどのように柔軟性をもたらすか、そしてあらゆる種類の契約社員にとってアクセスしやすいものとするかについて説明します。

契約社員の採用に関する問題

重工業では、労働者の採用に関して、多くの課題に直面します。契約社員は、自分の役割に固有の、密度の高い技術情報を受け取ること、そして重要な健康と安全のための慣行に関するトレーニングを受けることが必要です。Initiafy は、会社に対し、契約社員のためにマルチメディアコンテンツを含むコースをデザインする機会を与えています。

非常に重要な安全と技術情報を与えることはひとつの課題です。重工業では、労働力として、様々な国からの、リテラシーのレベルも異なる契約社員を雇用するからです。Initiafy は、労働者間の言語の障壁を乗り越え、教育を受けられなかった、または教育が不足しているために非識字である場合もある労働者をサポートするためのツールを探していました。

Amazon Polly の使い方

Initiafy のプラットフォームでは、労働者はオンラインのトレーニングコースを受講します。コースはテキスト、ビデオ、画像、そして通常はコースのチャプターの終わりごとに用意されたクイズのようなインタラクティブコンテンツを含む、スライドに分割されています。Amazon Polly を使えば、テキスト形式のコンテンツは、あらゆる労働者がアクセスできるものになります。テキスト形式はなっていない、その他の音声コンテンツも追加できます。

コースを準備する担当者は、Amazon Polly で音声と言語を選択します。それからこれはオーディオファイルとして保存され、Amazon S3 バケット内に置かれます。コースの作成者は、労働者がどの程度多くのオーディオを聞く必要があるかもコントロールできます。たとえば、オーディオが 100% 再生されるまでは、次のスライドに進めないように設定することができます。このようにして、労働者がコースのコンテンツに取り組むように促します。

HTML 形式のコースコンテンツは削除されます。テキストストリームの残りはスライド単位で分割されて、バックグラウンドで Amazon Polly にアップロードされます。コースコンテンツには、次のように 3 つのタイプがあります。

  • HTML コンテンツは完全に削除されます。
  • テキストはスライドごとに含められていて、Amazon Polly によって読み上げられます。
  • トレーニング中に労働者に対して読み上げられる隠しテキストというものもあり、これはスライドには表示されません。

プラットフォーム上のコースごとに、Initiafy のユーザーは、「オーディオリーダー」を有効にするかどうかのオプションがあります。オーディオボタンをクリックすると、ポップアップが表示されます。

  • ポップアップから、ユーザーがコースの次のスライドに移動できるまでの時間を選択できます。
  • デフォルトの遅延 (秒単位)、オーディオの長さの 100%、80%、60%、40%、または 20% です。
  • ユーザーはコースの言語と音声を選択できます。プレビューでは、ユーザーは選択した音声をテストできます。
  • コースの作成者は、スライドの作成の際、スライドエディターの下部にある再生ボタンをクリックして、各スライドのオーディオをテストできます。

機能を有効にすると、コースの開始時にオーディオが自動的に再生され、新しいスライドごとにコンテンツが読み上げられます。
ユーザーは、スライド上部の緑の一時停止ボタンをクリックして、いつでもオーディオを一時停止することができます。

私たちは、オンラインコースにおいて、Amazon Polly の「辞書管理」機能を使っています。クライアントの多くは、オリエンテーションに詳細な技術的情報を含めたいと思っており、辞書機能を使えば、それらの用語は正確に発音されます。加えて、多くの会社名は複雑だったり、頭文字語だったりするので、辞書があればそれらを正確に発音できます。これは顧客にとって重要な事柄です。

Amazon Polly を Initiafy に統合する

顧客の管理者は、Initiafy のアプリケーションを使って、Amazon Polly にコンテンツを読み上げるようリクエストします。この時点で当社の Amazon EC2 インスタンスが Amazon Polly に MP3 をリクエストし、それは Amazon S3 に保存されます。MP3 への参照情報はコースとともに当社のデータベースに保存され、ユーザーがトレーニングを受けるときに再生の準備ができた状態になっています。

ユーザーがコンテンツのための音声と言語を選択すると、Amazon Polly にそれを読み上げるようにとの依頼が送られます。私たちは出力を MP3 として受け取り、後ほど再生するために Amazon S3 バケットに保存します。

public async Task<byte[]> Speak(string[] content, string textType, string voiceId, bool applyLexicon, List<string> lexiconNames)
    	{
        	try
        	{
                string newVoice = MapIspeechVoice(voiceId);
            	var req = new SynthesizeSpeechRequest
            	{
                	OutputFormat = OutputFormat.Mp3,
                	TextType = TextType.FindValue(textType),
                	VoiceId = newVoice
            	};
 
            	if (applyLexicon)
                	req.LexiconNames = lexiconNames;
            	if (req.TextType == null)
                	req.TextType = TextType.Text;
 
  	          var data = new MemoryStream();
 
            	using (AmazonPollyClient _client = new AmazonPollyClient(RegionEndpoint.EUWest1))
            	{
                	foreach (var group in content)
                	{
                    	req.Text = group;
 
                    	var result = await _client.SynthesizeSpeechAsync(req);
 
                    	byte[] buffer = new byte[BUFFER_SIZE];
                    	int read;
 
                    	while ((read = result.AudioStream.Read(buffer, 0, buffer.Length)) > 0)
                    	{
                        	data.Write(buffer, 0, read);
                    	}
                	}
            	}
 
            	return data.ToArray();
 
        	}
        	catch (Exception ex)
        	{
	log(ex);
            	throw ex;
        	}
    	}

まとめ

アクセシビリティは Initiafy のプラットフォームにおける主要な価値であり、Amazon Polly はそれに完璧にフィットしています。これにより、様々な国からの、リテラシーの程度の異なる人々に到達することができます。当社のクライアントは重工業を運営しており、言語的に多様な労働力を有しているので、労働力の中の非識字者の割合は平均より高くなっています。

Amazon Polly と Initiafy の統合は、シームレスなプロセスでした。これはユーザーの生活を容易なものとしました。そして当社の顧客は、トレーニングがすべての労働者からアクセス可能なものなっているという点で、安心感を持つことができます。安全に関するトレーニングは文字通り生死を分ける問題です。このトレーニングがすべての労働者に行き渡るようにすることは、私たちと、当社の顧客にとって、きわめて重要です。


今回のブログ投稿者について

Ronan O’Sullivan は Initiafy の CTO で、会社とプラットフォームの技術的な展望について責任を負っています。

Conor McNally は Initiafy のコミュニケーションマネージャーで、Initiafy における、社内と社外のメッセージのやりとりに責任を負っています。