none
Транскрипция слова на русском языке RRS feed

  • Общие обсуждения

  • Всем привет!

    Возникла задача получить в каком-либо виде транскрипцию (произношнеие) слова на русском языке (не аудио файл, а именно запись транскрипции), например "привет" -> "prʲɪvʲˈet". Приложение разрабатываеися на .NET. Возможно, в стандартной библиотеке есть какие-нибудь средства? Пробовал найти в интернете словарь всех русских слов с транскрипцией - неудачно. Помогите, пожалуйста, советом.


    If you can't fix it, feature it!


    6 июня 2020 г. 17:50

Все ответы

  • Здравствуйте,

    Готового вариант вроде нет, но может возможно получить транскрипцию слова через: RecognizedWordUnit.Text Property

    И затем уже создать словарь по типу:

    var map = new Dictionary<char, string> { { 'П', "P" }, { 'е', "e" }, { 'т', "t" }, { 'р', "r" },

    ...

    }



    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.



    7 июня 2020 г. 12:26
    Модератор
  • Есть вариант сначала синтезировать речь и сохранить в аудио файл, потом распознать речь и, таким образом, получить транскрипцию. Но хотелось бы что-нибудь попроще. Без распознавания, класс RecognizedWordUnit никаких действий не производит, это просто контейнер для результатов распознавания, как я понял.

    If you can't fix it, feature it!


    • Изменено ru_Val 8 июня 2020 г. 17:27
    8 июня 2020 г. 17:23
  • Есть такой вариант: .NET Core Cyrillic to Latin Transliteration Utility (C#)

    Но именно с произношением не удалось ничего найти.


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    8 июня 2020 г. 18:22
    Модератор
  • Есть такой вариант: .NET Core Cyrillic to Latin Transliteration Utility (C#)

    Но именно с произношением не удалось ничего найти.


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    Это не подходит, нужно именно произношение. Решил пойти по пути синтеза речи в аудио файл и дальнейшего распознавания.

    If you can't fix it, feature it!

    9 июня 2020 г. 17:36
  • Есть вариант сначала синтезировать речь и сохранить в аудио файл, потом распознать речь и, таким образом, получить транскрипцию. Но хотелось бы что-нибудь попроще. Без распознавания, класс RecognizedWordUnit никаких действий не производит, это просто контейнер для результатов распознавания, как я понял.

    If you can't fix it, feature it!


    И как это будет работать? Ведь после распознавания получится не транскрипция, а само слово. В идеальном случае (если распознавание будет без ошибок) ввод и вывод просто совпадут если это не очевидно.

    Решение: наймите 10 человек на неделю чтоб они взяли словарь и вбили транскрипцию нужных слов в текстовый файл. Конечно придется заплатить денег. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    13 июня 2020 г. 4:27
    Модератор

  • И как это будет работать? Ведь после распознавания получится не транскрипция, а само слово. В идеальном случае (если распознавание будет без ошибок) ввод и вывод просто совпадут если это не очевидно.

    Решение: наймите 10 человек на неделю чтоб они взяли словарь и вбили транскрипцию нужных слов в текстовый файл. Конечно придется заплатить денег. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    System.Speech.Recognition.SpeechRecognitionEngine на выходе выдает, помимо прочего, набор RecognizedWordUnit, у которых есть свойство Pronunciation и там транскрипция. Но, к сожалению, русский язык не поддерживается, т.к. в Windows 10 нет встроенного распознавания русского языка. Попробовал Google.Cloud.Speech, распознавание русского там есть, но не нашел транскрипции. У яндекса Облако тоже не нашел транскрипции, может плохо искал. Сейчас изучаю Azure Speech API

    If you can't fix it, feature it!



    • Изменено ru_Val 13 июня 2020 г. 10:16
    13 июня 2020 г. 10:03

  • И как это будет работать? Ведь после распознавания получится не транскрипция, а само слово. В идеальном случае (если распознавание будет без ошибок) ввод и вывод просто совпадут если это не очевидно.

    Решение: наймите 10 человек на неделю чтоб они взяли словарь и вбили транскрипцию нужных слов в текстовый файл. Конечно придется заплатить денег. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    System.Speech.Recognition.SpeechRecognitionEngine на выходе выдает, помимо прочего, набор RecognizedWordUnit, у которых есть свойство Pronunciation и там транскрипция. Но, к сожалению, русский язык не поддерживается, т.к. в Windows 10 нет встроенного распознавания русского языка. Попробовал Google.Cloud.Speech, распознавание русского там есть, но не нашел транскрипции. У яндекса Облако тоже не нашел транскрипции, может плохо искал. Сейчас изучаю Azure Speech API

    If you can't fix it, feature it!



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

    Можете с тем же успехом выполнить банальную транслитерацию, скорее всего число ошибок будет меньше.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    13 июня 2020 г. 21:38
    Модератор

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

    Можете с тем же успехом выполнить банальную транслитерацию, скорее всего число ошибок будет меньше.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    Русский текст -> синтез System.Speech.Synthesis.SpeechSynthesizer -> распознавние Google SpeechClient -> русский текст - довольно качественно работает. Жаль что только готовый текст выдает, без произношения.

    If you can't fix it, feature it!

    14 июня 2020 г. 12:34