語学学習用のアプリを開発中です。
語学の教科書にはmp3などの音声ファイルが付いていますが、これにテキストの文章を同期させ、音声とともに文章を強調表示させたく、2つのアプリを開発途中です。
1つは、文章に時間タグを埋め込む、SentenceTimeStamper、もうひとつは時間タグを埋め込んだファイルと音声ファイルを同期させ、再生・表示するアプリTextVoicePlayerです。どちらもGitHubにソースコードを公開しています。
これらはPCアプリですが、今後Android版の再生アプリを開発したいと思います。
SentenceTimeStamper
注意:
このアプリは、現在ソースコードをダウンロードしてもうまくビルドできないことがあります。(現状、私のPCではリビルドできるのですが、、、原因は何でしょう?)
<追記2024.6.21>
原因が少しわかってきました。本アプリはNAudio1.9か1.7は.net Framework4.0を使っていて、私の開発pcには入っているのですが、他のPCには入っていないためビルドができないようです。またNAudio.WaveFormRenderer.libはバージョンが2.0にアップしていてこれにも対応しなければいけませんでした。またC#とNAudioを勉強し直しです。)
アプリの説明
このアプリケーションSentenceTimeStamperは、mp3など音声ファイルとその内容を書き起こしたテキストファイルから、音声に同期したテキスト部分を強調して表示させるために、テキストファイルに時間タグを埋め込むための語学学習用のソフトウエアである。
時間タグを埋め込んだテキストファイルは、拡張子がstsになり、フォーマットは次のようになる。これは、音楽ファイルにその歌詞を表示させるlrcファイルの考え方を拡張した。
フォーマット
[開始時間(分:秒.1/100秒)]テキスト文字[/終了時間(分:秒.1/100秒)]
stsファイルの実際の例
[00:01.03] 日本京都大学研究人员的研究表明,[/00:03.74][00:04.10]把利用iPS细胞形成的血液成分[/00:07.42][00:07.68]注入再生不良性贫血的患者体内后[/00:11.00][00:11.39]有望改善患者的症状。[/00:13.20][00:14.01]据悉,[/00:14.31][00:14.76]京都大学已在日本国内率先就这一研究成果[/00:18.63][00:18.84]向政府提交了临床试验申请,[/00:21.76][00:22.95]政府有关部门将于近期开始对申请进行审议。[/00:26.57]
stsファイルを再生・表示するためには、
stsファイルを再生させるためには、TextVoicePlayerを使うと、再生できます。
stsファイルを再生アプリ:TextVoicePlayeの紹介
また今後TextVoicePlayerforAndroidを開発したいと思います。(4年前に挑戦したのですが、途中で挫折してしまいました。再チャレンジしようと、このブログを書きました。)
使用した技術
このアプリは、NAudioを使っています。一部ソースコードをいじっています。SentenceTimeStamperは4年ほど前に作ったアプリで、開発当時の事を忘れてしまい、どこをいじったか分かりません。(また、開発メモはHDDが壊れたため、無くなってしまいました。)
謝辞
このアプリを作るきっかえを与えてくれた、qiitaの記事「C#でSoundCloudライクな波形を表示する音楽プレーヤを作ってみる」と、wa2cさんのMedolyに感謝します。
wa2cさんのMedolyの音声ファイルとLrcファイルを同時に開く技術は、すごいと思います。