「Repete Plus」をアップデートしました。(version 7.6)

「Repete Plus」をアップデートしました。(version 7.5.1 -> version 7.6)

Repete Plusは、語学学習を支援するオーディオプレイヤーです。
無音部分を自動認識し、語学教材をフレーズごとに間隔をあけて再生できます。

App Storeはこちら

使い方を紹介しているサポートサイトはこちら
Repete Plus – nackpan Blog

変更点

バージョン7.5.1までは、区間に分割した際にファイルの最後の区間はフレーズの後ろの無音部分がほぼありません。そのため状況によっては、再生時にフレーズ末尾が途切れるケースがありました。また、最後の区間での待ち時間がほかの区間に比べて短くなっています。
今回のアップデートで、この問題を修正しました。

  • 自動的に分割する際に、中間の区間と同様に最後の区間にも少し無音を加えるようにしました。
  • すでに区切り情報が保存されているオーディオファイルについては、区間データ管理の「末尾無音追加」から、最後の区間に少し無音を加えられるようになりました。
    (設定 > 詳細 > 区間データ管理 から、オーディオファイルのデータを選び、「末尾無音追加」ボタンを押すことで、最後の区間に少し無音が加えられます)
  • 設定> 「区切りデータ管理」を、設定>「区間データ管理」に名前変更。区間データ管理に「末尾無音追加」ボタンを設置。ヘルプを設置。
  • バグ修正

開発者後記

サポートページのツダトモさんのコメントおよびApp Storeのtomohirosoraさんのコメントで、DUO 3.0使用の際に、最後の区間を再生する際に途中で途切れる症状が出ることがあると報告がありました。二人から同時期に報告があったということで、ただちに調査に取り掛かりました。手元の環境では再現できなかったものの、最後の区間が途切れる症状に関しては、思い当たる点がありました。
今回のアップデートでは、この問題の修正を行いました。

無音位置検知・区間分割処理のパートはRepete(語学学習支援プレイヤー)のリリース前に開発した後は、その後のアップデートでもほぼ修正なしで使い続けていました。

当時採用した手順。
無音位置を検知して、有音区間の始点・終点を求めましたが、そのままではブツ切れになることがありました。フレーズの後ろに余裕を持たせるため、区間の終点を次の区間の始点としました。
最後の区間の終点はファイルの末端としました。
しかし、多くの語学教材では、ファイルの最後に長めの無音が入っています。
待ち時間が長すぎたので、最後の区間では無音部分をカットしました。
このときに、最後の区間では、無音をまるまるカットするのではなく、有音部分の最後の位置を求めた後すこし余裕を持たせて終点を決めればよかったのですが、考えが思い至りませんでした。
今回のアップデートで、最後の区間では有音区間のすこし後ろに終点を設定しました。
(また、今回のアップデートでは対処していませんが、現行の区間の終点を次の区間の始点とする方式では、フレーズのあいだが長いばあいに待ち時間が長くなってしまう問題があります。DDDさんのコメントでも要望がありましたが、よくよく調査しなければ影響範囲が定め難いので、いまだ手をつけていません)

バージョン2.7で、ファイル最後の区間の待ち時間が短いので対処してほしいとjshinさんのコメントがあり、「末尾無音追加」という項目を設定> 詳細> 末尾無音追加 に加えたのですが、このときの処置は無音分析処理時点で対処するのでなく、作成した区間に後付けで無音ファイルをつけるものでした。
この方法でも、最後の区間の待ち時間が短い問題に対しては、対応できました。
しかし、無音分析処理時点で有音部分の最後を削り気味にしていた場合、フレーズの最後が削られる症状が出たままになります。
また、このときの処理は、とってつけたパラメータが一つ増えたかたちになり、プログラム内部で管理が煩雑になっていました。

今回のアップデートで、バージョン2.7方式の「末尾無音追加」は取り外しました。
かわって、最後の区間の終点をずらす「末尾無音追加」(区間データ管理>末尾無音追加)を追加しました。
これならば、フレーズの最後が削られることはありません。

プログラム内部もすっきりしました。


Repete Plusが語学学習の助けになれば幸いです。
Repete Plusの応援よろしくお願いします。

投稿者:

nackpan

nackpan

iOSアプリを作っています。 リピーティングに便利な「語学学習支援プレイヤー」つくりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください