Формат даты для использования с преобразованием текста в речь в Java - PullRequest
3 голосов
/ 27 января 2011

У меня есть Date, который я хотел бы отформатировать в текст, который может быть использован механизмом преобразования текста в речь.В настоящее время я делаю это вручную, используя различные SimpleDateFormat s.

Примеры того, что должно получиться в результате форматирования:

  • 25 января, две тысячи первого в 18:00
  • 25 января две тысячи одиннадцать в 7:52 вечера

Есть мысли?Спасибо.

Ответы [ 3 ]

1 голос
/ 04 февраля 2011

Если вы хотите потерять точность, есть примеры кода, который сообщает время как «четверть первого» или «пять минут десятого», но все примеры, которые я могу найти, делают то, что вы уже делаете, и используете if /затем / else для проверки всех особых случаев.

Взгляните на http://sourceforge.net/projects/fuzzytime/ для скрипта Python, который делает это, или найдите «нечеткое время», чтобы получить несколько других примеров.*

В противном случае, я думаю, вы уже на правильном пути, если поймаете все крайние случаи.

0 голосов
/ 04 февраля 2011

Учитывая ограниченное время и / или бюджет, я бы, вероятно, использовал SimpleDateFormat для создания элементов, разделенных разделителями, а затем написал бы свою собственную функцию для преобразования этого в читаемый текст.

Итак, я бы сначала преобразовал в:
January|25|2001|6|00|PM
January|25|2000|7|05|PM
January|25|2011|7|52|PM

затем проанализируйте результат в произвольном формате (основываясь на том, как я хочу услышать озвученную дату / время), затем выполните преобразование текста в речь. Мне кажется, что число крайних случаев невелико.

0 голосов
/ 28 января 2011

Что вам нужно, это превратить цифры в слова. Вы на полпути, просто зайдите сюда и посмотрите, может ли эта процедура помочь. Как только вы превратите числа в слова, вам будет легко интегрироваться с TTS. JAVA: число в слово

...