Какой самый эффективный способ заставить речевой синтезатор правильно произносить дату?
Я пишу программу синтеза речи на C# и использую две машины для отладки. Машина один имеет культурное имя "Английский (Великобритания)" и показывает системную дату как "25/03/2017", машина два имеет культурное имя "Английский (США)" и отображает системную дату как "25.03.2017" ". При использовании Microsoft David Desktop в качестве голоса синтезатора речи первое произносится как "25 slash 03 slash 2017", а второе - "25 марта 2017". С другой стороны, при использовании Microsoft Hazel Desktop он произносится как "25 марта 2017 года", а второй - как "03 slash 25 slash 2017". Я знаю, что Хейзел - это английский, британский голос, а Дэвид - английский, американский. Существует ли эффективный способ заставить все английские голоса правильно произносить дату независимо от того, является ли системная культура британской или американской?
1 ответ
Рассмотрите возможность использования DateTime.ToLongDateString()
метод:System.DateTime.Now.ToLongDateString()
дает пятницу, 14 апреля 2017 года.
Это должно решить вашу проблему с разными голосами синтеза речи, однако вы должны заметить, что формат строки, которую вы получите с помощью этого метода, будет зависеть от CultureInfo
Ты устанавливаешь.