A computer-implemented method of converting a string of characters in a first language into a phonetic representation of a second language, the method comprising: receiving the string of characters in the first language; parsing the string of characters in the first language into a string of graphemes and/or pseudo-graphemes in the first language, wherein a pseudo-grapheme is formed by grouping together graphemes of the string of characters in the first language; the computer-implemented method being characterised by further comprising: accessing a first data structure that maps graphemes or pseudo-graphemes in the first language to one or more universal phonetic representations based on an international phonetic alphabet, wherein the first data structure comprises a plurality of first nodes with each first node of the plurality of first nodes having a respective weight assigned that corresponds to a likely pronunciation of a grapheme; determining one or more universal phonetic representations for one or more graphemes or pseudo-graphemes in the string of graphemes and/or pseudo-graphemes in the first language based on the first data structure; accessing a second data structure that maps the one or more universal phonetic representations to one or more graphemes in the second language, wherein the second data structure comprises a plurality of second nodes with each second node of the plurality of second nodes having a respective weight assigned that corresponds to a likely representation of a grapheme in the second language; determining at least one grapheme representation in the second language for one or more of the one or more universal phonetic representations based on the second data structure; and constructing the phonetic representation of the string of characters in the second language based on the at least one grapheme representation in the second language that was determined. receiving the string of characters in the first language; parsing the string of characters in the first language into a string of graphemes and/or pseudo-graphemes in the first language, wherein a pseudo-grapheme is formed by grouping together graphemes of the string of characters in the first language; the computer-implemented method being characterised by further comprising: accessing a first data structure that maps graphemes or pseudo-graphemes in the first language to one or more universal phonetic representations based on an international phonetic alphabet, wherein the first data structure comprises a plurality of first nodes with each first node of the plurality of first nodes having a respective weight assigned that corresponds to a likely pronunciation of a grapheme; determining one or more universal phonetic representations for one or more graphemes or pseudo-graphemes in the string of graphemes and/or pseudo-graphemes in the first language based on the first data structure; accessing a second data structure that maps the one or more universal phonetic representations to one or more graphemes in the second language, wherein the second data structure comprises a plurality of second nodes with each second node of the plurality of second nodes having a respective weight assigned that corresponds to a likely representation of a grapheme in the second language; determining at least one grapheme representation in the second language for one or more of the one or more universal phonetic representations based on the second data structure; and constructing the phonetic representation of the string of characters in the second language based on the at least one grapheme representation in the second language that was determined. accessing a first data structure that maps graphemes or pseudo-graphemes in the first language to one or more universal phonetic representations based on an international phonetic alphabet, wherein the first data structure comprises a plurality of first nodes with each first node of the plurality of first nodes having a respective weight assigned that corresponds to a likely pronunciation of a grapheme; determining one or more universal phonetic representations for one or more graphemes or pseudo-graphemes in the string of graphemes and/or pseudo-graphemes in the first language based on the first data structure; accessing a second data structure that maps the one or more universal phonetic representations to one or more graphemes in the second language, wherein the second data structure comprises a plurality of second nodes with each second node of the plurality of second nodes having a respective weight assigned that corresponds to a likely representation of a grapheme in the second language; determining at least one grapheme representation in the second language for one or more of the one or more universal phonetic representations based on the second data structure; and constructing the phonetic representation of the string of characters in the second language based on the at least one grapheme representation in the second language that was determined.