whisper.cpp icon indicating copy to clipboard operation
whisper.cpp copied to clipboard

talk-llama have a problem with Russian

Open sergeykorablin opened this issue 2 years ago • 4 comments

When i run talk-llama like this:

./talk-llama -t 8 -l ru --person Myname -mw models/ggml-base.bin -ml ../llama.cpp/models/ggml-wizardlm-7b-q5_1.bin --prompt-file examples/talk-llama/prompts/mypromp.txt

and try to speak in Russian it recognize only punctuation: , . ? !

But with -tr option talk-llama recognize my speak and translate it to English.

./main - works well with Russian without any problem.

sergeykorablin avatar May 03 '23 13:05 sergeykorablin

When i run talk-llama like this:

Попробуй эту языковую модель, она на русском обучена

BPOH avatar May 15 '23 04:05 BPOH

Попробуй эту языковую модель, она на русском обучена

Проверил, результат такой же, распознаёт только знаки препинания в тексте. Дело точно не в модели, whisper.cpp работает и распознает русский, а talk-llama не может. Скорей всего что-то с кодировкой текста не на латинице в talk-llama.

sergeykorablin avatar May 15 '23 10:05 sergeykorablin

@sergeykorablin как-то решил проблему?

wanesoft avatar Aug 17 '24 22:08 wanesoft

@sergeykorablin как-то решил проблему?

@wanesoft нет

sergeykorablin avatar Aug 18 '24 05:08 sergeykorablin

такая же фигня, модель знает Ру а выдает это F:\llama.cpp\build\bin\Release>llama-run.exe F:\llama.cpp\models\unsloth.Q8_0.gguf "Привет, мир!" ←[33mуАМуАЛуАБAI: oui ┬луГ╗уГ╗уВ╖уГЯуГеуГмуГ╝уВ╖уГзуГ│уГ╗уГжуГЛрд╡уВвуГлуГ╗уГнуГ╝уВлуГлуГ╗уВиуГ│уВ▓уГ│уВ▓уГ╝уВ┤уГ╗уГНуВдуВмуГлуГ╗уГОуГ╝уГ╗уГЧуГмуВдуГ╗уГРуГЗуВгуГ╗уВкуГ╝уГКуВ┐уГ╝уГ╗indeterminate ┬╗←[0m ←[0m

infiniti1985 avatar Mar 23 '25 14:03 infiniti1985

В билде https://github.com/Mozer/talk-llama-fast/ решена проблема, но там много изменений и добавлена озвучка только через xtts. По примеру Mozer, в файле talk-llama.cpp я заменил text_heard = std::regex_replace(text_heard, std::regex("[^a-zA-Z0-9\.,\?!\s\:\'\-]"), ""); на if (params.language == "en") text_heard = std::regex_replace(text_heard, std::regex("[^a-zA-Z0-9\.,\?!\s\:\'\-]"), ""); // breaks non latin text, e.g. Russian и пересобрал билд. Вроде помогло, но пока не тестировал вывод аудио

plxzm avatar Apr 17 '25 12:04 plxzm

@plxzm да, с этим исправлением работает. Спасибо!

coyotle avatar Apr 18 '25 10:04 coyotle