|
from synthesizer.persian_utils.symbols import symbols |
|
|
|
|
|
|
|
_symbol_to_id = {s: i for i, s in enumerate(symbols)} |
|
_id_to_symbol = {i: s for i, s in enumerate(symbols)} |
|
|
|
|
|
def text_to_sequence(text, cleaner_names): |
|
"""Converts a string of text to a sequence of IDs corresponding to the symbols in the text. |
|
|
|
The text can optionally have ARPAbet sequences enclosed in curly braces embedded |
|
in it. For example, "Turn left on {HH AW1 S S T AH0 N} Street." |
|
|
|
Args: |
|
text: string to convert to a sequence |
|
cleaner_names: names of the cleaner functions to run the text through |
|
|
|
Returns: |
|
List of integers corresponding to the symbols in the text |
|
""" |
|
|
|
|
|
if cleaner_names != ['persian_cleaners']: |
|
return 'cleaner is not persian!' |
|
sequence = [] |
|
for phoneme in text: |
|
sequence.append(_symbol_to_id[phoneme]) |
|
|
|
|
|
return sequence |
|
|
|
|
|
def sequence_to_text(sequence): |
|
"""Converts a sequence of IDs back to a string""" |
|
result = [] |
|
for symbol_id in sequence: |
|
result.append(_id_to_symbol[symbol_id]) |
|
' '.join(result) |
|
return result |
|
|