I think you are right in considering that "rokuhyaku" becoming "roppyaku" is not explained only by Rendaku. And I see by "Suokon" you mean "Sokuon." Sokuon is written in kana as "tsu" but practically in the pronunciation it's a short stoppage with the breath held for a moment. Here I use an expression "Sokuon-ka" to mean a change of a syllable to Sokuon. e.g. "Torite" becomes "totte" (= knob, handle). "Sakuka" becomes "sakka" (= creator of art, such as novelist).
what rule causes rokuhyaku to become roppyaku
A Japanese syllable beginning with a phoneme [p] is called "Handakuon," which literally means a half-voiced sound. I understand the changes of [f] / [h] to [b] and [p] are both types of Rendaku. I suppose it can be said that two phenomena, Sokuon-ka and Rendaku, happen when "rokuhyaku" becomes "roppyaku": a syllable [ku] for "roku" becomes Sokuon and a phoneme [h] for "hyaku" becomes [p]; the same can be said as to "ichi-hon" becoming "ippon."
I am not sure how [p] came to appear in Rendaku. But I feel the change of [f] to [p] easier to understand than that of [h], especially in a case Sokuon-ka also happens. Trying to repeat "kirifu" rapidly with one accent on [fu], I gradually make it like "kiffu" (i.e. [ri] becomes Sokuon) then like "kippu" (i.e. [f] becomes [p]). Maybe the change of [h] to [p] is related to that the first phoneme of syllables which is now pronounced [h] was closer to [f] in old Japanese.
I'm in the process of writing a small web application that can convert numbers into their Japanese pronunciation
" 四 " , " 七 " and " 九 ", when they are before " " or " 百 " or so, are usually pronounced "yon," "nana" and "kyuu." In some idiomatic cases, a number is read in another way. e.g. " 四 " in a word, when it forms a number referring to age of a person / people in 40s, can also be read "shijuu." e.g. A word " 四暑纉 ", when meaning the biggest Buddhist memorial service for a deceased on the 49th day of the death, is read "shijuuku-nichi," not "yonjuukyuu-nichi."
it would be cool if the algorithm that creates the pronunciation is completely generic without any "hard coded" exceptions.
As to numbers themselves, rules are simpler than when they are with counters.
[ juu (= ten), pronounced "juu"] Pronunciations of " 二 " to " 九 " have no change when they precede " ."
[ 百 hyaku (= hundred), pronounced "hyaku" / "byaku" / "pyaku"] -- hyaku ( 百 ), sambyaku ( 三百 ), roppyaku ( 六百 ), happyaku ( 八百 ).
[ 千 sen (= thousand), pronounced "sen" / "zen"] One thousand is usually pronounced "sen." To emphasize "one" we use 一千 . -- sen ( 千 ) / issen ( 一千 ), sanzen ( 三千 ), rokusen ( 六千 ), hassen ( 八千 ).
[ 万 man (= ten of 千 ), pronounced "man"] and [ 億 oku (= ten of thousands of 万 ), pronounced "oku"] Pronunciations of " 一 " to " " , " 百 " and " 千 " have no change when they precede " 万 " or " 億 ."
[ 兆 chou (= ten of thousands of 億 = million of millions), pronounced with a prolonged "o"] -- itchou ( 一兆 ), sanchou ( 三兆 ), rokuchou ( 六兆 ), hatchou ( 八兆 ). -- jitchou / jyutchou ( 薯 ), hyakuchou ( 百兆 ), sambyakuchou ( 三百兆 ), senchou ( 千兆 ), sanzenchou ( 三千兆 ).
[ 京 kei (= ten of thousands of 兆 ), pronounced with a prolonged "e"] -- ikkei ( 一京 ), sankei ( 三京 ), rokkei ( 六京 ), hakkei ( 八京 ). -- jikkei / jyukkei ( 暑 ), hyakkei ( 百京 ), sambyakkei ( 三百京 ), senkei ( 千京 ), sanzenkei ( 三千京 ).
(Here I avoid "trillion" / "billion" because it means the other number in (old) British English, French, German (and maybe other European languages) than in American English.)
|