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

  • Discussão Geral

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

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


    If you can't fix it, feature it!


    sábado, 6 de junho de 2020 17:50

Todas as Respostas

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

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

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

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

    ...

    }



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



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

    If you can't fix it, feature it!


    • Editado ru_Val segunda-feira, 8 de junho de 2020 17:27
    segunda-feira, 8 de junho de 2020 17:23
  • Есть такой вариант: .NET Core Cyrillic to Latin Transliteration Utility (C#)

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


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

    segunda-feira, 8 de junho de 2020 18:22
    Moderador
  • Есть такой вариант: .NET Core Cyrillic to Latin Transliteration Utility (C#)

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


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

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

    If you can't fix it, feature it!

    terça-feira, 9 de junho de 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.

    sábado, 13 de junho de 2020 04:27
    Moderador

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

    Решение: наймите 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!



    • Editado ru_Val sábado, 13 de junho de 2020 10:16
    sábado, 13 de junho de 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.

    sábado, 13 de junho de 2020 21:38
    Moderador

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

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


    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!

    domingo, 14 de junho de 2020 12:34