Example #1
0
    def RunAnalysis(self, df, group_name, output_dir):
        rows_sb = []
        rows_mb = []
        for _, row in df.iterrows():
            if filter.IsShanghainese().IsMatched(row) and filter.IsPosition('b').IsMatched(row):
                rows_sb.append(row)
                continue
            if filter.IsMandarin().IsMatched(row) and filter.IsPosition('b').IsMatched(row):
                rows_mb.append(row)
                continue

        df_sb = pd.DataFrame(rows_sb)
        df_sb = ComputeF1F2Diff(df_sb)
        df_sb_avg = pd.DataFrame(
            df_sb.loc[:, df_sb.columns.str.startswith("diff")].mean()).T
        df_sb.to_csv(output_dir / (group_name +
                                   '@@@Sb.debug.csv'), index=False)
        df_sb_avg.to_csv(output_dir / (group_name +
                                       '@@@SbMean.debug.csv'), index=False)

        df_mb = pd.DataFrame(rows_mb)
        df_mb = ComputeF1F2Diff(df_mb)
        df_mb_avg = pd.DataFrame(
            df_mb.loc[:, df_mb.columns.str.startswith("diff")].mean()).T
        df_mb.to_csv(output_dir / (group_name +
                                   '@@@Mb.debug.csv'), index=False)
        df_mb_avg.to_csv(output_dir / (group_name +
                                       '@@@MbMean.debug.csv'), index=False)

        x = ['Sb', 'Mb']
        y = [df_sb_avg['diff_' + self.formant + '_7525'][0],
             df_mb_avg['diff_'+self.formant+'_7525'][0]]
        plt.bar(x, y, width=kBarWidth)

        plt.title(group_name)
        plt.savefig(output_dir / (group_name + '.png'), bbox_inches="tight")
        plt.clf()
        plt.cla()
Example #2
0
 def __init__(self):
     super().__init__('F2', 'Sb', [filter.IsShanghainese(), filter.IsPosition('b')],
                      GetGender)
Example #3
0
 def __init__(self):
     super().__init__('F2', 'Sa', [filter.IsShanghainese(), filter.IsPosition('a')],
                      GetAge)
Example #4
0
 def __init__(self):
     super().__init__({
         'Sa': [filter.IsShanghainese(), filter.IsPosition('a')],
         'Sb': [filter.IsShanghainese(), filter.IsPosition('b')],
     })
Example #5
0
 def __init__(self):
     super().__init__({
         'Sb': [filter.IsShanghainese(), filter.IsPosition('b')],
         'Mb': [filter.IsMandarin(), filter.IsPosition('b')]
     })
Example #6
0
 def __init__(self):
     super().__init__([filter.IsShanghainese(), filter.IsPosition('b')])
Example #7
0
import filter as ft
import analyzer as az

GROUP_A = ([
    [ft.IsShanghainese(), ft.IsMandarin()],
    [ft.IsMale(), ft.IsFemale()],
    [ft.IsChild(), ft.IsYouth(),
     ft.IsAdult(), ft.IsSenior()],
    [ft.IsVariant('a1'), ft.IsVariant('a2')],
], [
    az.FormantQuantiles(),
    az.FormantRegression(),
])

GROUP_C = (
    [
        [ft.IsShanghainese(), ft.IsMandarin()],
        [ft.IsMale(), ft.IsFemale()],
        [ft.IsChild(), ft.IsYouth(),
         ft.IsAdult(), ft.IsSenior()],
        [
            ft.IsVariant('c1'),
            ft.IsVariant('c2'),
            ft.IsVariant('c2vs'),
            ft.IsVariant('c2h'),
            ft.IsVariant('c4')
        ],
        [
            ft.IsWordNum([1, 2]),
            ft.IsWordNum([3, 5, 6]),
            ft.IsWordNum([7, 8, 9]),